Como Hacer Un Reproductor De Musica En Java

29 views
Skip to first unread message
Message has been deleted

Esther Winterrowd

unread,
Jul 15, 2024, 2:35:30 PM7/15/24
to calbeschdonsver

Hace algn tiempo publiqu como reproducir msica en Java. En ese hilo me pedan ayuda para hacer una lista de reproduccin. Lo cierto es que no va ms all de usar alguna estructura de datos, as que pondr una sencilla implementacin usando ArrayList.

como hacer un reproductor de musica en java


Descargar archivo https://tweeat.com/2yOr6v



Realmente lo nico importante es darse cuenta que la estructura de datos la mantiene ArrayList (_list) y que slo tenemos que preocuparnos de _pointer, que ser quien nos diga cul ser el prximo fichero a reproducir.

eejej no, que pena si no me explique bn es un programa para reproducir mp3 que tiene que tener listas de reproduccion pero estas listas las tengo que hacer por medio de nodos. y ps estas listas obviamente tienen que ser circulares y doblemente encadenadas. gracias!!
y perdon x la molestia.

Hola, estoy haciendo un reproductor mp3 y java, y quisiera que se pudiera hacer con listas de reproduccion, el problema es que quiero meter en una Jlist todos los mp3 que existen en alguna carpeta, esto lo estoy tratando de hacer con el metodo getSelectedFiles() de la clase JFileChooser pero este metodo me regresa un array de tipo File[], y pues hasta ahi llegue, ya no se como mandar todo eso a mi jlist, lo unico que e podido hacer es mandar un archivo a la vez con el metodo addElement de la clase DefaultListModel, pero para agregar todos los archivos a la vez ahi es donde ya no puedo, agradezco de antemano su ayuda.

En este caso usaremos la implementacin Java Sound, Tritonus y la librera de reproduccin de mp3 MP3SPI (en caso de querer reproduccin OGG deberamos incluir tambin VorbisSPI). Para simplificar el proceso, usaremos una librera que proporciona una API de alto nivel para no tener que programar las funciones bsicas, BasicPlayer, que usa para ello JLayer.

Hagamos un ejemplo simple, una clase llamada Reproductor controlar la librera y la clase Test ordenar cosas a Reproductor. En este supuesto solamente se podra escuchar una cancin al mismo tiempo y no nos preocuparemos de fallos no relacionados directamente con el ejemplo.

Lo que nos obliga a implementar una serie de mtodos, pero antes de implementarnos, en el contructor suscribiremos a la clase al reproductor BasicPlayer (recordad que en nuestro diseo solo hay un BasicPlayer al mismo tiempo, pero podra haber varios):

El problema es que no entra en el if. Y si comento el if cuando va a calcular bytesLength me devuelve java.lang.NullPointerException. Asique supongo que el problema est en audio.length.bytes. Alguna idea de como solucionarlo y poder obtener el valor de bytesLength. Lo necesito para poder usar el progress.

Hola! muchas gracias por compartir esta infromacion!. Una consulta, estoy intentando crear un programa que trabaja con mp3 pero me gustaria agregarle la posibilidad de poder hacer que el archivo que se este reproduciendo vaya mas rapido, se te ocurre alguna forma de poder lograrlo? Saludos y discupla la molestia!

hola Pablo, estoy usando la librera javazoom, la cual reproduce el sonido perfectamente dentro del ide eclipse, pero el problema es que cuando exporto el proyecto como jar ejecutable el sonido no funciona y la app funciona mal. estoy casi seguro que es la librera common loggin el problema ya que al probarlo en otros equipos (con las libreras necesarias) el error que me lanza es precisamente esa librera.

hola me ha gustado leer varios de tus cdigos basados en java acerca de las varias funciones para crear un reproductor mp3 y me a sido de mucha ayuda, quisiera saber si tienes un blog o pagina donde estn todos estos cdigos que has subido segn su categora, no se si me expliqu bien, es que solo vi material del reproductor mp3 no se si tienes una pagina de otras cosas interesantes que llamen mi atencin y as conocer cosas nuevas! de ante mano agradezco por la informacin, estoy estudiando programacin y me gustan muchos tus post deseara un profesor as ;) !

Hoy aprenderemos como hacer un reproductor de vdeo en java utilizando las libreras JMF y fobs4jmf, te explico el cdigo necesario para el desarrollo de este reproductor, tambin aprenderemos como ir agregando vdeos a una lista de reproduccin y poder desplazarnos entre ellos por medio de un par de teclas asignadas.

Lo que haremos el da de hoy es crear un reproductor de vdeo en java con el que podremos ir agregando vdeos a una lista de reproduccin y fcilmente pasar al anterior o siguiente vdeo con ayuda de un par de teclas, el reproductor ser a pantalla completa por lo cual podremos ocultar o mostrar el men en cualquier momento con ayuda de una tecla asignada, tambin programaremos la funcionalidad de que al terminar de reproducirse un vdeo este vuelva a iniciar desde cero.

Para iniciar es necesario que descargues un par de libreras que ocuparemos para el desarrollo del reproductor de vdeo en java, JMF (Java Media Framework ) y FOBS4JMF para soportar ms formatos de audio y vdeo.

Inicializamos las variables que ocuparemos a lo largo de este ejemplo, la variable Player ser nuestro reproductor y necesitaremos 2 variables de tipo Component para el vdeo y los controles, las variables de tipo char las utilizaremos para poder navegar entre vdeos y mostrar u ocultar el men.

El mtodo reproducir es donde se encuentra la funcionalidad principal de nuestro reproductor de vdeo en java, lo primero que hacemos es obtener la url del vdeo que deseamos reproducir y convertirla a un recurso MediaLocator, enseguida inicializamos nuestro reproductor en la variable mediaPlayer y obtenemos los componentes de vdeo y controles, posteriormente los agregaremos a nuestro panel principal al centro y sur respectivamente.

Mediante un evento de reproductor EndOfMediaEvent indicamos lo que se va a hacer cuando un vdeo llegue a su final, esto es, volver a reproducir el mismo vdeo regresando su tiempo de reproduccin a cero.

Como dijimos al comienzo nuestro reproductor de vdeo en java podr irse al anterior vdeo con la tecla a y al siguiente con la tecla d, as como ocultar o mostrar el men con la tecla w.

Para hacer esto comparamos la tecla presionada por el usuario con las teclas definidas por nosotros, en caso de que se presione la tecla w comprobamos si la barra de men esta visible para hacerla invisible y viceversa.

Para el caso de vdeo anterior y vdeo siguiente ocupamos una variable llamada index, que tambin utilizamos para la lista de reproduccin, misma que vamos aumentando o decrementando segn la tecla pulsada.

Java tambin posee mtodos predefinidos para reproducirsonido. El ordenador remoto no necesita tener un reproductor deaudio; Java realizar la reproduccin (evidentemente,el ordenador remoto, en donde se ejecuta el applet, necesitardisponer de hardware de sonido).

Y, finalmente, el applet ControlSonido.java, nos permite a travsde una interface basada en botones, poder controlar la reproduccinde audioclips. El checkbox de carga se usa como indicador parasaber cuando el fichero que contiene el clip de sonido a reproducir,se encuentra ya cargado en el sistema.

hola.. hice lo q dijist y todo me sale bien, pero mi proyecto consiste en hacer un reproductor en netbeans y necesito colocar las rutas (url) en una jtable para poder tener una lista d reproduccion, quisiera saber cmo hago para cerrar el fichero, xq una vez abierto suena perfecto pero no me deja pasar a la siguient cancion xq obviamnt todavia sigue abierto el fichero anterior y quisiera saber cmo cerrarlo y abrir el siguiente ya q creo q ahi radica mi error. muchas gracias y espero q me puedas ayudar cn esto..

Hola, que tal
yo quiero hacer un programita para que solo me ejecute un archivo .mp3, sin interfaz ni nada, hice un codigo de prueba con las funciones que mensionas, y no me marca errores, pero no me ejecuta nada jeje, en consola me muestra lo siguiente:

@pere: Efectivamente, de la forma descrita en este artculo, nicamente puedes reproducir MP3, WAV y OGG. Para reproducir MIDI slo tienes que importar el paquete javax.sound.midi. Tienes un ejemplo en:

hola, ps amigos yo no soy siquiera novato en esto de java, pero tengo una idea y no se si ustedes puedan materializa, ps la idea es un reproductor mp3 que se enlace a mi cuenta de gmail y reproduzca en una lista de reproduccion los adjuntos.

para que tengan una idea de como hacer para entrar a la cuenta gmail y enlazar los adjuntos vean un programa que se llama mailresender, con ese programa subo y bajo archivos a mi cuenta gmail y ps ya que gmail no tiene la opcion de reproducir los adjuntos uno detras de otro me surgio esa idea pero como no se nada de programacin quisiera saber si alguno de ustedes podria desarrollar algo para esto.

Hola man, muchisimas gracias, logre que me lo reprodusca perfectamente, mi problema es el siguiente, me corre cualquier mp3 si le paso la direccion pero no puedo hacerlo correr con un mp3 interno al .jar, es q estas clases externas no lo permiten?, bueno solo eso , muchas gracias!

Hola yo estoy trabajando con el codigo que publicastes, que es bastante sencillo y facil de entender, sin embargo al hacer el reproductor con el jslider tambien deseo presentar el tiempo q transcurre de la cancion pero cuando adelanto o atrazo el tiempo(jslider) los microsegundos del metodo progress se borran y no puedo presentarlos y no puedo utilizar los bytes xq cada musica pesa distinto sin importar el tiempo que realmente tiene.
si puedes ayudarme te lo agradeceria mucho.

Gracias! Ahora quiero implementar la interfaz y tengo problemas tambien. Sabes que tengo las 2 clases, Test y Reproductor. Lo que entendi de la explicacion, es que en el constructor de Reproductor agrego:

Veo que el error de antes (que no reproducia nada), era porque falta llamar al procedimiento play(), capaz me falta llamar al procedimiento opened(Object arg0, Map arg1), pero que valores les paso? y tambien hay que llamar a progress??

Los mtodos Opened y Progress no se llaman, la librera los lanza automticamente. Por ejemplo, cuando t le hagas un loadFile automticamente se ejecutar el mtodo opened. Cuando se est reproduciendo un archivo, el mtodo progress se ejecutar cada poco (varias veces por segundo) para informar del progreso.

d3342ee215
Reply all
Reply to author
Forward
0 new messages