En este proyecto se utiliza la librería JDOM para leer los datos de un archivo XML desde java y
Que utilizamos:
- JDOM: JDOM es una biblioteca de código abierto para manipulaciones de datos XML optimizados para Java.
- JMF: Java Media Framework o JMF (en español entorno de trabajo multimedia de Java) es una extensión de Java que permite la programación de tareas multimedia en este lenguaje de programación.
- Netbeans 6.0
- XML: Extensible Markup Lenguage o Lenguaje de marcado extendible
- Un editor de texto para crear el archivo XML (Notepad por ejemplo)
El archivo XML que forma el playlist, tiene la siguiente estructura:
<?xml version="1.0" encoding="UTF-8"?> <playlist> <song id="1"> <titulo>TITULO</titulo> <artista>ARTISTA</artista> <album>ALBUM</album> <location>DIRECION DEL ARCHIVO MP3</location> <artLocation></artLocation> </song> </playlist>
Es un XML simple la cual esta formada por los elementos necesarios que puede tener un playlits, Titulo de la cancion, artista, album, direccion del archivo MP3 y un campo adicional donde se almacena la ruta de los Preview de los album, en este caso todos se encuentran dentro del JAR
El archivo XML con los datos de las canciones puede verse aqui abajo:
<?xml version="1.0" encoding="UTF-8"?> <playlist> <song id="1"> <titulo>Mi Cordura</titulo> <artista>La logia</artista> <album>Nacer para morir</album> <location>E:/mp3/Mi Cordura.mp3</location> <artLocation>/album/album3.jpg</artLocation> </song> <song id="2"> <titulo>Jamas la vi</titulo> <artista>La Logia</artista> <album>Morir para nacer</album> <location>e:/mp3/Jamas La Vi.mp3</location> <artLocation></artLocation> </song> <song id="3"> <titulo>Patria</titulo> <artista>La Logia</artista> <album>Escalofriante</album> <location>e:\mp3\00000000000Patria.mp3</location> <artLocation>/album/album5.jpg</artLocation> </song> <song id="4"> <titulo>La Vieja</titulo> <artista>Cordura</artista> <album>No tengo idea</album> <location>e:\mp3\08 - La Vieja.mp3</location> <artLocation>/album/album5.jpg</artLocation> </song> <song id="5"> <titulo>Knockin On heavens door</titulo> <artista>GUns and roses</artista> <album></album> <location>e:\mp3\007.-KNOCKIN ON HEAVEN.mp3</location> <artLocation>/album/album5.jpg</artLocation> </song> </playlist>
La clase encargada de manipular los archivos XML es XMLpanel.java:
package playlistxml; import java.awt.Dimension; import java.io.FileInputStream; import java.io.IOException; import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException; import org.jdom.input.SAXBuilder; /** * @web http://jc-mouse.blogspot.com/ * @author Mouse */ public class XMLpanel extends javax.swing.JPanel { Dimension d = new Dimension(470,500); //constructor al cual se le pasa la direccion del archivo XML public XMLpanel(String pl){ int i=0; //añadimos un layout this.setLayout(new javax.swing.BoxLayout(this, javax.swing.BoxLayout.Y_AXIS)); try { // Creamos el builder SAX SAXBuilder builder = new SAXBuilder(); Document doc = builder.build(new FileInputStream(pl)); // Obtenemos la etiqueta raÃz Element raiz = doc.getRootElement(); List <Element> hijosRaiz = raiz.getChildren(); //recorremos todos los hijos de la raiz for(Element hijo: hijosRaiz){ //creamos un nuevo objeto SONG this.add(new song()); //añadimos propiedades ((song)this.getComponent(i)).setTitulo(hijo.getChild("titulo").getValue()); ((song)this.getComponent(i)).setArtista(hijo.getChild("artista").getValue()); ((song)this.getComponent(i)).setAlbum(hijo.getChild("album").getValue()); ((song)this.getComponent(i)).setLocation(hijo.getChild("location").getValue()); ((song)this.getComponent(i)).setPreview(hijo.getChild("artLocation").getValue()); i++; }//fin hijos }catch (JDOMException ex) { Logger.getLogger(XMLpanel.class.getName()).log(Level.SEVERE, null, ex); } catch (IOException ex) { Logger.getLogger(XMLpanel.class.getName()).log(Level.SEVERE, null, ex); } //asignamos tamaño al panel deacuerdo d = new Dimension(410,(100*(i))); this.setSize(d); this.repaint(); } //sirve para obtener cual es el archivo mo3 seleccionado del playlist public String getSongSelecionado(){ String File=""; for(int i=0; i<this.getComponentCount();i++){ if(((song)this.getComponent(i)).getSeleccion()){ File = ((song)this.getComponent(i)).getLoaction(); break; } } return File; } }
El proyecto completo hecho en Netbeans 6.0 junto con las librerías necesarias en el siguiente enlace
http://link.jc-mouse.net/?id=P14Y115TXM
5 comentarios:
excelente
ke tal amigo soy VDOAL, he estado checando tus posts pero no he tenido ningun resultado, en este post ya descargue tu trabajo, le agregue las librerias que necesita, al xml le pase la url dela cancion, corri el programa y nada paso, no me manda errores por k esta supuestamente bien, pero no reproduce el archivo, que propuesta me das para resolver el problema?
lo mismo paso con el reproductor mp3 sencillo, no reproduce ningun archivo mp3 que selecciono, tambien con el de los videos, ninguno me manda errores, pero no me reproducen nada
mi mail es vdoal1.0@gmail.com
hola amigo puedes subir de nuevo el archivo; el enlace de descarga del juego ya no esta
Buenas!!!
Podrías subir de nuevo el proyecto completo?? Es que no funciona el enlace de descarga. Me harías un gran favor pleaseeee!!!
Mil gracias, un saludo
gracias por el aviso, lo subire de inmediato
Publicar un comentario