Reproductor Mp3 Java

Hola amigos! Me han pedido que publique este tutorial y pues bueno acá está. Se trata de la reproducción de archivos mp3 en Java. La aplicación en sí ya la había desarrollado hace un tiempo, sin embargo el tutorial no. De hecho no he podido realizar un tutorial completo sobre este reproductor mp3 por asuntos de tiempo. Solo mencionaré algunos aspectos que considero importantes y al final de este post dejare el link de dscarga para que analicen el código fuente.

Para la reproducción de multimedia en Java existen diferentes API’s (Que es un API?) que nos ayudan o que practicamente hacen el trabajo por nosotros. Las API’s viene con un conjunto de funciones y procedimientos los cuales podemos utilizar para realizar determinada acción.

En mi caso utlicé el API Java Media Framework (JMF). Este API permite la reproduccion de archivos de multimedia y trae consigo algunos métodos o funciones como: Start, Stop, permite controlar el Volumen y Mute. Estos métodos son suficientes para realizar un reproductor mp3. Sin embargo, existen API’s más completos que además de las funciones anteriores tiene: Pause y Resume. Debemos instalar el JMF en nuestra pc. Además del API JMF necesitamos la librería jmf.jar para que nos brinde el acceso a los métodos del API.

Para la interfaz del reproductor utilicé substance look and feel.

Acá les dejo todo lo necesario para desarrollar el reproductor mp3 y el ejemplo para que vean el código fuente.

Substance.jar: Descargar!

Librería jmf.jar: Descargar!

API JMF: Descargar!

Ejemplo Reproductor Mp3: Descargar!

Espero comentarios, dudas o preguntas…

22 comentarios en “Reproductor Mp3 Java

  1. Hola te agradesco que ayas subido el mp3 realmente lo estava esperando bueno boy a empesar a estudiar el codigo.. gracias por compartir estos ejemplo yo estoy estudiando informatica y realmente mean servido de mucho espero que sigas colocando mas siempre visito esta web asi que estare atento a tus aportes gracias de nuevo

    • No hay de amigo… Y gracias por tus comentarios y visitas! Me alegra que lo que hago te ayude en tus estudios… Yo tambien estoy abierto a recibir cualquier tipo de aporte, pues tambien soy estudiante, así que si quieres brindar algún aporte con gusto lo recibiré. Gracias por el apoyo. Pura Vida!!

  2. ola amigo muy bueno tu reproductor enserio 😉 !!LO MAXIMO!!! pero tengo una pregunta mira lo k me salio cuando trate de reproducir una musica y me salio cn varias musicas como puedo hacer en este caso te agradeceria si me podrias ayudar. De antemano muchas gracias !!!
    Unable to handle format: mpeglayer3, 44100.0 Hz, 16-bit, Stereo, LittleEndian, Signed, 16000.0 frame rate, FrameSize=32768 bits
    Failed to realize: com.sun.media.PlaybackEngine@19db122
    Error: Unable to realize com.sun.media.PlaybackEngine@19db122
    oct 16, 2011 8:22:53 PM myMP3 play
    Grave: null
    javax.media.CannotRealizeException
    at javax.media.Manager.blockingCall(Manager.java:2005)
    at javax.media.Manager.createRealizedPlayer(Manager.java:528)
    at myMP3.play(myMP3.java:33)
    at Control.play(Control.java:81)
    at frmRepro.Play(frmRepro.java:40)
    at frmRepro.btnPlayActionPerformed(frmRepro.java:545)
    at frmRepro.access$500(frmRepro.java:11)
    at frmRepro$6.actionPerformed(frmRepro.java:208)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at org.jvnet.substance.utils.RolloverButtonListener.mouseReleased(RolloverButtonListener.java:109)
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:290)
    at java.awt.Component.processMouseEvent(Component.java:6504)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6269)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4860)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4686)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2713)
    at java.awt.Component.dispatchEvent(Component.java:4686)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
    at java.awt.EventQueue.access$000(EventQueue.java:101)
    at java.awt.EventQueue$3.run(EventQueue.java:666)
    at java.awt.EventQueue$3.run(EventQueue.java:664)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:680)
    at java.awt.EventQueue$4.run(EventQueue.java:678)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

    • Oye de primera vista pense que era la extension del archivo a reproducir… Pero creo que el problema se genera si lo ejecutas en win 7. Creo en realidad no estoy seguro. Cuando creé el repro, yo utilizaba win vista, en incluso lo ejecute en win xp y todo bien… Pero ahora que lo ejecuto en win 7, da ese error… En realidad estoy investigando a ver por donde anda la cosa…

    • No amigo. En este caso no porque estamos utilizando un framework (JavaMediaFramework) que es el que se encargado de iniciar o detener la reproduccion de un determinado archivo. Pero este framework no cuenta con la funcionalidad de pausar por lo tanto no lo podemos hacer. De alguna otra manera si es posible pero mientras usemos el framework no lo podremos hacer…

  3. Muy buen aporte amigo… me ha gustado mucho tu proyecto… gracias por compartir este proyecto… me ha servido mucho… he aprendido nuevas cosas.. muchas gracias…

  4. uso windows 7 de 32 bits y no me funciona me marca unas excepciones, mmm pero esta chido el programa…..alguien sabe si ya funciona en w7

    • Si funciona en win7 de 32 bits. Y si tienes win7 64 bits lo que tienes que hacer es instalar la máquina virtual de java o jdk de 32 bits. Una vez instalada, abres NetBeans y vas a Tools>>Java Platforms>>Add Platform… eliges el directorio donde instalaste el jdk de 32 bits y listo, le das finalizar. Ya con esto agregaste la plataforma de 32 bits a NetBeans, ahora lo que tienes q hacer es decirle a tu proyecto que corra en esta plataforma de 32 bits. Esto lo haces de la sigte manera:

      Le das clic derecho al proyecto y seleccionas Propiedades o Properties, en la ventana que se muestra seleccionas Librerias o Libraries y luego en Java Platform seleccionas el jdk que acabas de instalar, el de 32 bits y listo.

      Ya con estos pasos corre bien el reproductor. Si no entiendes algo o te quedas en algun paso me escribes y trato de explicarlo mejor

    • Si tienes una maquina de 64 bits y usas el jdk de 64 bits no va a reproducir la musica. Lo q debes hacer es instalar el jdk de 32 bits, agregarlo a netbeans y luego en las propiedades del proyecto indicarle que se debe ejecutar con el jdk de 32 bits… Gracias

      • hola amigo muchas gracias .. pero te tengo una consulta que haces con JM STUDIO TENGO Windows 8.1 guiame x fa

Deja un comentario