Autor Tema: Proyecto personal java. bug en tiempo de ejecución.  (Leído 4346 veces)

Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Proyecto personal java. bug en tiempo de ejecución.
« en: 18 de Diciembre 2014, 08:24 »
 Hola compañeros!

 Estoy trabajando en el diseño de un pequeño proyecto personal java, con la finalidad de ir asociándome con lo complejo de java. Este proyecto esta enfocado en el uso de interface gráfica, operaciones sencillas, operaciones complejas y funciones en base a  eventos.

Podría decir yo que el programa esta casi listo (en su versión super beta XD) y me gustaría que me echen una mano con un bug para el cual no he encontrado solucion, pese a que busque en todo google algo que me orientara a corregirlo.

mas adelante dejare un link de descarga que contiene un archivo.rar con todo lo necesario para correr el proyecto en netbeans (IDE usado para crear este proyecto) así como también un ejecutable.jar del programa. También se incluye la documentación (javadoc) del proyecto

El bug es el siguiente: El programa cuenta con un reproductor de musica, cuando se reproduce una canción cuyo titulo no contiene el String "mely" se muestra un visualizador de estado de reproducción (JLabel) con un gif en movimiento por defecto para todas las canciones que no contengan el String "mely".

Hasta aquí vamos bien, luego si reproducimos otra canción, cuyo titulo contenga el String "mely" la imagen del visualizador de estado de reproducción cambia a un gif especial para esta canción (un gif de la cantante melymel, yo la amo a ella XD)

Hasta aquí todo normal, el bug aparece cuando nuevamente cambiamos la canción por una canción que no contenga el String "mely", en lugar de mostrar nuevamente el gif por defecto para las canciones que no contengan el String "mely" ya no se muestra ninguna imagen, aun cuando la música esta sonando.

Lo raro de este bug, es que mientras corro el programa (RunProject) usando netbeans este bug nunca aparece, pero si aparece cuando ejecuto el ejecutable.jar que me genera netbeans mediante la operación clean and build.

Me parece que el bug se genera por conflictos con el EDT, (Event Dispatch Thread) intente crear un nuevo hilo para este evento pero no soluciono el bug.

Para  comprender mas sobre el bug que intento explicar, favor descargar el archivo.rar del link http://www.mediafire.com/download/vxk97nb20d9t0ko/McApp.rar y descomprimir usando la contraseña: j.lopez luego ubique el archivo.txt readme, el cual detalla todo sobre el programa, también puede consultar la documentación (javadoc) del proyecto.

Saludos!
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Proyecto personal java. bug en tiempo de ejecución.
« Respuesta #1 en: 18 de Diciembre 2014, 09:29 »
Hola Jorge, he estado mirando el código y veo que es un proyecto largo y complejo, al menos para quien lo ve por primera vez.

He intentado compilarlo y me salta una exceción "package javazoom.jl.decoder does not exist"

en la clase "ReproductorMp3" línea import javazoom.jl.decoder.JavaLayerException;

¿Falta el código de este paquete?

He ejecutado el jar y el programa se abre correctamente, la calculadora funciona correctamente, y el reproductor mp3 también.

Lo que parece que no acaba de funcionar es lo de las imágenes que se muestran cuando se reproduce un mp3. He abierto un mp3 que no contiene la cadena mely. Si pulso sobre el disco para abrir otro mp3 mientras está sonando el que he abierto, desaparece la imagen. Si le doy a cancelar, la sigue sonando la música pero no aparece la imagen.

Ahí parece que tienes algún problema en el control de esa imagen, supongo que no debería desaparecer así porque sí.

Si abro la canción que tiene el string mely aparece la imagen nueva exclusiva de mely, y va sonando la música. Hasta ahí todo bien.

Si pulso en el icono del disco, desaparece la imagen.

Además, mientras está sonando la canción de mely, en ocasiones la música se para y se sigue viendo la imagen.

Hay una cosa que es extraña: la imagen de mely parece un video ¿qué tamaño tiene? ¿puede ser que sea demasiado tamaño? ¿has probado a poner una imagen de pequeño tamaño de archivo?

Aunque no he podido compilarlo pienso que si tuviera que depurar empezaría por separar el código de la calculadora y el código del reproductor mp3, es decir, crear dos programas. Tal y como lo tienes puede resultar complicado depurar y ver hasta qué punto te está influyendo una cosa y otra.

Y finalmente felicitarte por el buen nivel de programación que se puede apreciar!!!


Jorge lopez

  • Sniper
  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 248
  • @SniperOfElite
    • Ver Perfil
Re:Proyecto personal java. bug en tiempo de ejecución.
« Respuesta #2 en: 19 de Diciembre 2014, 16:59 »
 Hola Alex!

Citar
He intentado compilarlo y me salta una exceción "package javazoom.jl.decoder does not exist"

en la clase "ReproductorMp3" línea import javazoom.jl.decoder.JavaLayerException;

¿Falta el código de este paquete?
Ciertamente el proyecto usa librerías extras que incorporan packages como javazoom que no incluí en el archivo.rar del proyecto. Aquí dejo las librerías adicionales necesarias y las instrucciones de como incorporarlas al proyecto. Link: http://www.mediafire.com/download/p7p7tabxzab1cxc/McAppExtrasLibraries.rar

Citar
Si pulso sobre el disco para abrir otro mp3 mientras está sonando el que he abierto, desaparece la imagen. Si le doy a cancelar, la sigue sonando la música pero no aparece la imagen.

Ahí parece que tienes algún problema en el control de esa imagen, supongo que no debería desaparecer así porque sí.
Esto se debe a una linea de codigo (if(!"".equals(songTitle)){songTitle=""; estado.setIcon(null);})en la clase McApp en el método musicMouseClicked, esta linea la declare tratando de buscar una solucion al bug ya mencionado, pero es fácil de corregir.

Citar
Si pulso en el icono del disco, desaparece la imagen.
Cada vez que se pulse el icono de música (evento mouseClicked) , la imagen de estado desaparecerá debido a la instrucción music.setIcon(null); pero como te comente, esto es fácil de corregir.

Citar
Además, mientras está sonando la canción de mely, en ocasiones la música se para y se sigue viendo la imagen.
Aquí me descuide, creo que tengo que agregar una instrucción que desaparezca la imagen de estado si la música a terminado de reproducirse.

Citar
Hay una cosa que es extraña: la imagen de mely parece un vídeo ¿qué tamaño tiene? ¿puede ser que sea demasiado tamaño? ¿has probado a poner una imagen de pequeño tamaño de archivo?
La imagen de mely es un archivo.gif con tamaño de 514kb, creada a partir de escenas cortas de un vídeo, es 400kb mayor que el gif por defecto para las canciones normales. Si, eh probado usar una imagen de menor tamaño y de formato.png en lugar de la imagen mely pero el bug continua.

Citar
Aunque no he podido compilarlo pienso que si tuviera que depurar empezaría por separar el código de la calculadora y el código del reproductor mp3, es decir, crear dos programas. Tal y como lo tienes puede resultar complicado depurar y ver hasta qué punto te está influyendo una cosa y otra.
En la versión 6 del proyecto, aplicare estas y cualquier otra recomendación que me puedas o me puedan dar de cara a mejorar la eficiencia del programa.

Citar
Y finalmente felicitarte por el buen nivel de programación que se puede apreciar!!!
Muchas gracias,  :) ese viene siendo el resultado actual de trabajoDuro+Perseverancia+CompañerosQueAyudan
(como tu  y todos mis compañeros de aprenderaprogramar.com ;))

Saludos!
« Última modificación: 20 de Diciembre 2014, 00:48 por Jorge lopez »
while(estesVivo)
{
  aprende();
  ayuda();
  enseña();
}
if(mueres){teRecordaran();}

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".