Un saludo a todos!, hoy les traigo una nueva aplicación desarrollada con Java, en esta ocasión les mostraré el uso de la clase MediaPlayer de la librería JavaFX, y así construir un pequeño reproductor de MP3 bastante sencillo.
¡Bien, empecemos!
En la documentación podemos ver que la clase MediaPlayer en su constructor requiere un objeto de la clase Media, así que primeramente debemos crear este objeto que es el encargado de contener la información del archivo de audio que vamos a reproducir. El constructor de la clase Media tiene como parámetro un objeto String que sería la dirección del audio en formato URI, para esto nos ayudaremos de la clase Paths.
El codigo quedaria de esta manera:
Media media = new Media(Paths.get("direccion-del-archivo.mp3").toURI().toString())
De esta manera ya tenemos el objeto Media, ahora solo debemos pasarlo como parámetro al constructor de la clase MediaPlayer.
MediaPlayer player = new MediaPlayer(media)
Debido a que siempre que queramos reproducir un nuevo audio debemos construir un nuevo objeto Media y MediaPlayer, sería más cómodo crear una función que nos devuelva un objeto MediaPlayer al pasarle la dirección del archivo de audio.
public MediaPlayer getMediaPlayer(String source){
Media media = new Media(Paths.get(source).toURI().toString());
MediaPlayer player = new MediaPlayer(media);
player.setAutoPlay(true);
return player;
}
Al usar la función setAutoPlay(), configuramos al reproductor para que tan pronto este listo reproduzca el archivo de audio y así escucharlo por nuestros altavoces.
Ahora te mostraré un ejemplo completo que nos permitirá elegir el archivo de audio que queramos.
class MP3Player extends Application{
private MediaPlayer = player;
public static void main(String args){
launch(args);
}
public void start(Stage stage){
StackPane root = new StackPane();
ImageView logoView = new MediaView(new Image("/resources/logo.png"));
root.setOnMouseClicked(new EventHandler<MouseEvent>() {
public void handle(MouseEvent event) {
if(event.getButton().compareTo(MouseButton.SECONDARY) == 0) {
FileChooser chooser = new FileChooser();
public void handle(MouseEvent event) {
if(event.getButton().compareTo(MouseButton.SECONDARY) == 0) {
FileChooser chooser = new FileChooser();
chooser.setInitialDirectory(new File(System.getProperty("user.home")));
chooser.setTitle("Selecciona un Archivo de video");
chooser.getExtensionFilters().addAll(
new ExtensionFilter("Audio","*.mp3"),
new ExtensionFilter("Todo","*"));
File selectedFile = chooser.showOpenDialog(stage);
if (selectedFile != null) {
if(player != null) {
player.stop();
}
player = getPlayer(selectedFile.getPath());
chooser.setTitle("Selecciona un Archivo de video");
chooser.getExtensionFilters().addAll(
new ExtensionFilter("Audio","*.mp3"),
new ExtensionFilter("Todo","*"));
File selectedFile = chooser.showOpenDialog(stage);
if (selectedFile != null) {
if(player != null) {
player.stop();
}
player = getPlayer(selectedFile.getPath());
player.setVolume(0.5);
}
}
}
});
}
}
}
});
root.getChildren().add(logoView);
Scene scene = new Scene(root);
stage.setScene(scene,500,500);
stage.setTitle("MP3 Player");
stage.setResizable(false);
stage.show();
}
public MediaPlayer getMediaPlayer(String source){
Media media = new Media(Paths.get(source).toURI().toString());
MediaPlayer player = new MediaPlayer(media);
player.setAutoPlay(true);
return player;
}
}
Con esto ya tenemos una ventana que al hacer clic con el botón derecho del ratón nos permitirá seleccionar una archivo MP3 y reproducirlo inmediatamente.
Hace un tiempo desarrollé una versión más completa que incluye controles de reproducción y una lista de reproducción.
En otra oportunidad explicaré como agregarle controles a nuestro reproductor, pero por ahora será hasta la próxima. Les dejo un enlace donde pueden descargar el archivo JAR para que prueben el código que explique en esta entrada.
Descargar el archivo ejecutable aquí.
Comentarios
Publicar un comentario