Por 9.99€ al mes tendrás acceso completo a todos los cursos. Sin matrícula ni permanencia.
En esta lección aprenderemos a insertar y reproducir sonidos en JavaFX utilizando las clases Media
y MediaPlayer
. Esto permitirá enriquecer nuestras aplicaciones con efectos de sonido o música de fondo.
Carga de ficheros locales
Preparación del proyecto
- Crear la carpeta para los archivos de sonido:
- En la raíz de tu proyecto (o dentro de
src
), crea una carpeta llamadasound
. - Coloca dentro el archivo de sonido que quieras utilizar. Por ejemplo:
HakunaMatataItMeansNoWorries.mp3
.
- En la raíz de tu proyecto (o dentro de
- Formato del archivo de sonido:
- Asegúrate de que el archivo esté en un formato compatible, como MP3 o WAV.
String musicFile = "sound/HakunaMatataItMeansNoWorries.mp3";
Media sound = new Media(new File(musicFile).toURI().toString());
MediaPlayer mediaPlayer = new MediaPlayer(sound);
mediaPlayer.play();
sound será una carpeta creada en la raíz de nuestro proyecto.
Explicación del código:
Media
:- Crea un objeto de tipo
Media
para cargar el archivo de sonido. - Es necesario convertir la ruta del archivo a formato URI con
.toURI().toString()
.
- Crea un objeto de tipo
MediaPlayer
:- Es el reproductor que gestiona la reproducción del sonido (iniciar, pausar, detener, etc.).
- El método
.play()
inicia la reproducción.
Reproducir un sonido desde internet
Para reproducir un archivo de sonido alojado en un servidor remoto, simplemente pasa la URL al objeto Media
:
import javafx.application.Application;
import javafx.scene.media.Media;
import javafx.scene.media.MediaPlayer;
import javafx.stage.Stage;
public class SonidoDesdeInternet extends Application {
@Override
public void start(Stage primaryStage) {
// URL del archivo de sonido
String musicURL = "https://pablomonteserin.com/res/html5/ex/HakunaMatataItMeansNoWorries.mp3";
// Crear el objeto Media
Media sound = new Media(musicURL);
// Crear y reproducir el MediaPlayer
MediaPlayer mediaPlayer = new MediaPlayer(sound);
mediaPlayer.play();
}
public static void main(String[] args) {
launch(args);
}
}
Opciones avanzadas con MediaPlayer
Pausar y detener la reproducción:
mediaPlayer.pause(); // Pausar
mediaPlayer.stop(); // Detener
Controlar el volumen:
mediaPlayer.setVolume(0.5); // Rango entre 0.0 y 1.0
Repetir el sonido en bucle:
mediaPlayer.setCycleCount(MediaPlayer.INDEFINITE); // Reproducción infinita
Detectar el final de la reproducción:
mediaPlayer.setOnEndOfMedia(() -> System.out.println("¡Reproducción terminada!"));
Con esta lección, ya puedes agregar sonidos a tus aplicaciones JavaFX. ¡Prueba a incluir música de fondo o efectos de sonido para hacer tus proyectos más interactivos y atractivos! 🎵