¿Cómo puedo reproducir un archivo .mp3
y un .wav
archivo en mi aplicación Java? Estoy usando Swing. Intenté buscar en Internet algo como este ejemplo:
public void playSound() {
try {
AudioInputStream audioInputStream = AudioSystem.getAudioInputStream(new File("D:/MusicPlayer/fml.mp3").getAbsoluteFile());
Clip clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
} catch(Exception ex) {
System.out.println("Error with playing sound.");
ex.printStackTrace();
}
}
Pero esto solo reproducirá .wav
archivos.
Lo mismo con:
http://www.javaworld.com/javaworld/javatips/jw-javatip24.html
Quiero poder reproducir .mp3
archivos y .wav
archivos con el mismo método.
main
método, es necesario agregar unThread.sleep
para escuchar el sonido, o de lo contrario el programa terminará antes de que eso suceda. Una forma útil de hacerlo es:Thread.sleep(clip.getMicrosecondLength() / 1000);
Respuestas:
Java FX tiene
Media
yMediaPlayer
clases que reproducirán archivos mp3.Código de ejemplo:
Necesitará las siguientes declaraciones de importación:
fuente
Media
yMediaPlayer
no son clases de Java , sino clases de JavaFX . Para agregar soporte de mp3 a Java en OS X o Windows, es posible que desee buscar en SampledSP . Y sí, escribí esas bibliotecas.Escribí un reproductor de mp3 java puro: mp3transform .
fuente
puedes jugar .wav solo con java API:
código:
Y juega .mp3 con jLayer
fuente
Ha pasado un tiempo desde que lo usé, pero JavaLayer es excelente para la reproducción de MP3
fuente
Usando la API javax.sound estándar, una única dependencia de Maven, completamente de código abierto ( Java 7 requiere ):
pom.xml
Código
Referencias:
fuente
Recomendaría usar BasicPlayerAPI. Es de código abierto, muy simple y no requiere JavaFX. http://www.javazoom.net/jlgui/api.html
Después de descargar y extraer el archivo zip, se deben agregar los siguientes archivos jar a la ruta de compilación del proyecto:
Aquí hay un ejemplo de uso minimalista:
Importaciones requeridas:
Eso es todo lo que necesitas para empezar a reproducir música. El jugador está iniciando y administrando su propio hilo de reproducción y proporciona funciones de reproducción, pausa, reanudación, detención y búsqueda .
Para un uso más avanzado, puede echar un vistazo al reproductor de música jlGui. Es un clon de WinAmp de código abierto: http://www.javazoom.net/jlgui/jlgui.html
La primera clase a considerar sería PlayerUI (dentro del paquete javazoom.jlgui.player.amp). Demuestra bastante bien las funciones avanzadas de BasicPlayer.
fuente
mp3spi1.9.4.jar
Sinmp3spi1.9.5.jar
embargo, debería reemplazarse con desde el sitio de zoom de Java.player.play()
o es posible que no escuches ningún sonido.La forma más fácil que encontré fue descargar el archivo jar de JLayer desde http://www.javazoom.net/javalayer/sources.html y agregarlo a la biblioteca Jar http://www.wikihow.com/Add-JARs- to-Project-Build-Paths-in-Eclipse-% 28Java% 29
Aquí está el código de la clase.
y aquí están las importaciones
fuente
Para darles a los lectores otra alternativa, sugiero la biblioteca JACo MP3 Player, un reproductor de mp3 Java multiplataforma.
caracteristicas:
Para obtener una lista completa de sus métodos y atributos, puede consultar su documentación aquí .
Código de muestra:
Para obtener más detalles, creé un tutorial simple aquí que incluye un código fuente descargable.
fuente
Usando el decodificador / reproductor / convertidor MP3 Dependencia de Maven.
fuente
Primero debe instalar JMF ( descargar usando este enlace )
no olvide agregar archivos jar JMF
fuente
Haga una búsqueda de freshmeat.net para la biblioteca JAVE (siglas de Java Audio Video Encoder) (enlace aquí ). Es una biblioteca para este tipo de cosas. No sé si Java tiene una función mp3 nativa.
Probablemente necesitará unir la función mp3 y la función wav, usando la herencia y una función contenedora simple, si desea que un método ejecute ambos tipos de archivos.
fuente
Para agregar soporte de lectura MP3 a Java Sound, agregue
mp3plugin.jar
el JMF a la ruta de clase en tiempo de ejecución de la aplicación.Tenga en cuenta que la
Clip
clase tiene limitaciones de memoria que la hacen inadecuada para más de unos segundos de sonido de alta calidad.fuente
Tengo otros métodos para eso, el primero es:
Y el segundo es:
Y si queremos hacer un bucle a este audio usamos este método.
si queremos detener este bucle, agregamos estas librerías en el intento:
para este tercer método agregamos las siguientes importaciones:
fuente
Utilice esta biblioteca: import sun.audio. *;
fuente