0% encontró este documento útil (0 votos)
372 vistas4 páginas

Video en Java con JMF y NetBeans

Este documento describe cómo reproducir videos en Java usando el Java Media Framework (JMF). Explica que se necesita descargar e instalar JMF, y desarrollar la aplicación en NetBeans. Proporciona el código para una clase Videopanel que crea el reproductor usando JMF, y una interfaz sencilla con botones para abrir un video y controlar la reproducción.

Cargado por

Felino Tito
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
372 vistas4 páginas

Video en Java con JMF y NetBeans

Este documento describe cómo reproducir videos en Java usando el Java Media Framework (JMF). Explica que se necesita descargar e instalar JMF, y desarrollar la aplicación en NetBeans. Proporciona el código para una clase Videopanel que crea el reproductor usando JMF, y una interfaz sencilla con botones para abrir un video y controlar la reproducción.

Cargado por

Felino Tito
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOC, PDF, TXT o lee en línea desde Scribd

Reproducir video en java y netbeans con Java Media Framework

JAN 29
Post Info

 Mouse

 en 7:34

 43 comentarios

 Permalink

Reproducir un video en java no es imposible menos tan complicado como parece, ademas java nos proporciona herramientas para desarrollar nuestras aplicaciones.
Basta de charla y vamos a lo que interesa.

¿que necesitamos?

 Necesitamos el API multimedia de java llamado Java Media Framework, descargate la ultima version de su pagina, instalalo y reinicia la pc.

 Netbeans claro, sera nuestra herramienta para desarrollar la aplicacion de prueba.

 Un archivo de video con extension MPG, segun lei, la api de java JMF es capaz de reproducir varios tipos de formatos, en mi caso solo reprodujo MPG
y MP3, las causas no lo se aun.
El reproductor

El reproductor consta de una clase videopanel,java encargada de crear el objeto reproductor y de una clase reproductor,java, nuestra interfaz.

Codigo fuente

Clase videopanel.java

package videojava;
import java.awt.Component;
import java.awt.Dimension;
import java.io.IOException;
import java.net.URL;
import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;
/**
 * @web http://jc-mouse.blogspot.com/
 * @author mouse
 */
public class videopanel extends javax.swing.JPanel {
private Player mediaPlayer;
private Component controls;        
    
    public videopanel(URL mediaURL, Dimension d){
        Manager.setHint( Manager.LIGHTWEIGHT_RENDERER, true );
         try
            {
         // crea un reproductor especificando la direccion del archivo
         mediaPlayer = Manager.createRealizedPlayer( mediaURL );        
         // optiene los componentes del video
         Component video2 = mediaPlayer.getVisualComponent();
         video2.setSize(d.width, d.height);        
         video2.setVisible(true);
         //optiene los componentes de control del reproductor
         controls = mediaPlayer.getControlPanelComponent();
         controls.setSize(d.width, 24);
        
         if ( video2 != null )            
            add( video2 ); //agrega el componente del reproductor al panel
        
         mediaPlayer.start(); // comienza la reproduccion
      } // fin try
      catch ( NoPlayerException noPlayerException )
      {
         System.err.println( "No se encontro medio disponible, osea no se reproduce archivo" );
      } // fin catch
      catch ( CannotRealizeException cannotRealizeException )
      {
         System.err.println( "no se pudo realizar el reproductor" );
      } // fin catch
      catch ( IOException iOException )
      {
         System.err.println( "Error de lectura del archivo" );
      } // fin catch
    }
    
    public Component controles (){    
        return controls;        
    }
    
    public Component controles(Dimension d){
        controls.setSize(d);
        return controls;
    }
}

Esta clase hace uso del API JMF y la extiende hasta un objeto, en este caso un jPanel, pasando como referencias la URL del video en cuestion, tratando de capturar
los errores que se pudieran encontrar en el proceso, el codigo esta por demas comentado y creo que se entiende.

La interfaz
La interfaz del reproductor es sencilla, consta de un jpanel pantalla, lugar donde insertaremos el video, un jpanel control donde se localizara los controles del
reproductor, jButton abrir y jTextfiel txturl
Las partes mas importantes del codigo son:

Este codigo debe añadirse en el objeto jButton "abrir" con el evento ActionPerformed, lo que hace es llamar a una ventana de dialogo para buscar el archivo y luego
inicializar los objetos reproductor y controles

URL mediaURL = null;


videopanel mediaPanel;

private void abrirActionPerformed(java.awt.event.ActionEvent evt) {                                      


       JFileChooser fileChooser = new JFileChooser();
       int result = fileChooser.showOpenDialog(null);  
        if ( result == JFileChooser.APPROVE_OPTION ){
            try {          
                //se asigna a mediaURL el archivo de video seleccionado
                mediaURL = fileChooser.getSelectedFile().toURL();
                txturl.setText("" + mediaURL);
                //se obtiene el tamaño del panel de video
                Dimension dp = new Dimension(pantalla.getWidth(), pantalla.getHeight());
                //se crea el reproductor pasando como parametros
                // el archivo y dimensiones
                mediaPanel = new videopanel( mediaURL ,dp );          
                pantalla.add(mediaPanel);            
                pantalla.setVisible(true);
                //se obtiene dimensiones del contenedor de los controles
                // y se pasa como parametro para crear los controles de reproduccion
                Dimension d = new Dimension(control.getWidth(),control.getHeight());
                control.add(mediaPanel.controles(d));            
                control.setVisible(true);            
            }
            catch (IOException ex) {
                Logger.getLogger(reproductor.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    }                

También podría gustarte