Capturar webcam con VB.NET

¿Que haremos? Crearemos una aplicación en Visual Studio, la cual hará uso de una webcam para capturar el video en frames independientes y depositarlos en memoria para despues mostralos al usuario a través de un picturebox y un Timer para crear la ilusión de movimiento. ¿Porque lo haremos? Porque es justo y necesario ¿Que necesitamos? [...]

Envío de correo con JavaMail/Netbeans

JavaMail es una expansión de Java que facilita el envío y recepción de e-mail desde código java. JavaMail implementa el protocolo SMTP (Simple Mail Transfer Protocol) así como los distintos tipos de conexión con servidores de correo -TLS, SSL, autentificación con usuario y password, etc [Según SantaWikipedia] ¿Qué necesitamos? JavaMail 1.4.5 Java y Netbeans 6.9 [...]

Proyecto de base de datos Firebird VB

En este proyecto realizaremos una aplicación de base de datos Firebird con el lenguaje de programación de Visual Basic de Microsoft, este proyecto tendrá las funciones básicas de gestión INSERT, DELETE, UPDATE y una interfaz de usuario para utilizarlas. ¿Que necesitamos? Visual Studio 2008 o superior Firebird última versión Firebird ADO.NET Data Provider. Conocimientos básicos [...]

Imprimir imagen con Print

La siguiente clase hace uso de PRINT para imprimir una imagen que se encuentra en un variable de tipo FileInputStream, esta clase a su vez es implementada desde una interfaz que hace fácil su uso, la clase así como todo el proyecto esta comentado. import java.io.File; import javax.print.Doc; import java.io.IOException; import javax.print.DocFlavor; import javax.print.SimpleDoc; import java.io.FileInputStream; [...]

Code Army Bolivia

22/11/10

Playlist con XML y Java (reproductor mp3)

JAN29


En este proyecto se utiliza la librería JDOM para leer los datos de un archivo XML desde java y
mostrarlos en pantalla, la librería JDOM nos permite manipular los datos XML fácilmente y cuenta con varios métodos que hacen nuestro trabajo mas agradable.

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)
Proyecto:

El proyecto  PlayListXML esta formado por un clase XMLpanel.java la cual se extiende de un JPanel, es aqui donde utilizamos la libreria JDOM para manipular el archivo XML, esta clase hace uso de la clase Song.java la cual es un JPanel donde se colocaran los datos leidos del playlist XML. ademas este proyecto tambien utiliza la libreia de JMF para reproducir los archivos MP3

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 &lt;Element&gt; 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&lt;this.getComponentCount();i++){            
            if(((song)this.getComponent(i)).getSeleccion()){
                File = ((song)this.getComponent(i)).getLoaction();                      
                break;
            }            
        }
    return File;
  }
    
}
Todo el proyecto esta comentado y es (creo) fácilmente entendible para un programador "intermedio", novatos abstenerse. se los dejo para su análisis y estoy mas que seguro que a mas de uno le servirá en su universidad, escuela , instituto o simplemente para conocer un poco mas de lo que puede ofrecer java.

Este es el resultado del proyecto

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
Actualizado 21-marzo-2013

5 comentarios:

reston dijo...

excelente

Anónimo dijo...

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

Anónimo dijo...

hola amigo puedes subir de nuevo el archivo; el enlace de descarga del juego ya no esta

Unknown dijo...

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

mouse dijo...

gracias por el aviso, lo subire de inmediato

Post recomendado