11/1/10

Reproductor de videos en java: La API JMF - 2da parte

SEGUNDA PARTE
INTRODUCCION AL API DE JAVA MEDIA FRAMEWORK

En esta segunda parte se hace una pequeña introduccion al API de Java Media Framework, es aqui donde se creara una nueva clase "paneldevideo.java" la que sera encargada de manejar el API asi como de interactuar con la interfaz.
Por el momento esta clase solo consistira en crear un objeto MediaPlayer especificando la URL de un archivo de video, y su reproduccion sera automatica, los controles de reproduccion se dejaran para mas tarde.


La clase "paneldevideo.java" que se utiliza en este tutorial es:

import java.awt.Component;
import java.awt.Dimension;
import java.io.IOException;
import java.net.URL;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.media.CannotRealizeException;
import javax.media.Manager;
import javax.media.NoPlayerException;
import javax.media.Player;

/**
 * @web http://jc-mouse.blogspot.com/
 * @author Mouse
 */

//la clase se extiende de un Jpanel para heredar sus atributos
public class paneldevideo extends javax.swing.JPanel{
//declarmos la variable como privada
private Player mediaPlayer;
    //como datos de entrada tenemos
    //URL la url del archivo a reproducir
    //Las dimensiones del contenedor que tendra el reproductor
    public paneldevideo(URL url, Dimension d){
        try {
            // se forzara el uso de componentes  de render ligero
            Manager.setHint(Manager.LIGHTWEIGHT_RENDERER, true);
            mediaPlayer = Manager.createRealizedPlayer(url);
            //ahora se declara un Component adecuado para el uso en una GUI
            Component video = mediaPlayer.getVisualComponent();
            // añadimos al componente las dimensiones del contenedor            
            video.setSize(d);
            video.setVisible(true);
            // finalmente se añade al jPanel
            add(video);            
            // el video se reproducira automaticamnte se cree el objeto
            mediaPlayer.start();                       
            //control de excepciones            
        } catch (IOException ex) {
            Logger.getLogger(paneldevideo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (NoPlayerException ex) {
            Logger.getLogger(paneldevideo.class.getName()).log(Level.SEVERE, null, ex);
        } catch (CannotRealizeException ex) {
            Logger.getLogger(paneldevideo.class.getName()).log(Level.SEVERE, null, ex);
        }       
    }
}

13 comentarios:

  1. Hola amigo, pero que crees que cuando reproducir un arhivo en el panel me dice "Unable to handle format: MPEG, 640x480, FrameRate=25.0, Length=460800".

    No sabras a que se debera este error, espero me peudas ayudar, gracias

    ResponderEliminar
  2. hola amigo tengo un pequeño problema

    al momento de tratar de hacer el programa me sale un error el cual es :::: //package javax.media does not exist

    mi correo es galpon_los_reyes17@hotmail.com porfavor ayudame :(

    ResponderEliminar
  3. hola mira yo tengo un problema
    cuando quiero usar el Manager a mi no me tira la opcion de import javax.media y me dice que no existe nose cual sea el problema si me podrias ayudar gracias esta uy interesante tu blog
    mi correo es: grogel_1190@hotmail.com
    GRACIAS DE ANTEMANO...

    ResponderEliminar
  4. me parece muy bueno el tutorial para el reproductor de videos pero no tiene por ahi algun tutorial para conectar la camara web con el Jframe
    porq me he bajado algunos codigos pero no me reconoce la camara..


    si tienes algun tutorial o algo
    me lo envias al davidflash02@hotmail.com por favor

    ResponderEliminar
  5. de donde sacas "pantalla" no pude hacerlo ... ayuda

    ResponderEliminar
  6. Q BUENOS VIDEOTUTORIALES ISISTES
    ME AYUDARON UN MONTON PARA UN PROYECTO
    SE TE AGRADECE
    SIGUE ASI Y IEGARAS A SER
    MAS GRANDE
    XIDO
    KUIDTAE

    ResponderEliminar
  7. Hola..yo tambien tengo un problema con el Manager.. no me tira la opcion.. que hago ? jose_robertti_py@hotmail.com

    ResponderEliminar
  8. Hola .. Pues tengo un problema al darle click en el boton PLAY, me da varios errores, ya le di vueltas durante horas y nada!!

    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

    at reproductorjava.paneldevideo.(paneldevideo.java:38)

    at reproductorjava.reproductor.jButton2ActionPerformed(reproductor.java:2
    00)

    a lo que investigue, hace referencia a algo nulo, tengo todo exactamente como tu , de Antemano una disculpa Por ocupar demasiado Espacio, y Quiero terminar tu Tutorial!! esta MUY BIEN!! y GRACIAS !!

    ResponderEliminar
  9. por cierto ya tengo la API de JMF.jar , la cual la agregue a mi Proyecto de Netbeans 6.9.1

    ResponderEliminar
  10. Hola, antes que nada te agradezco la información que compartes.
    Solo tengo una consulta:
    Conseguí reproducir un video en Netbeans (sin instalar el JMF, solo usando los jars necesarios en el mismo proyecto), sin embargo cuando recién inicia la reproducción aparece una pantalla de color verde que después desaparece, la verdad no se me ocurre qué podría hacer para omitir esa parte inicial, te agradecería si tienes alguna sugerencia. Saludos.
    Silvia.

    ResponderEliminar
  11. venga que no lo instalaste pero si estas usando sus *.jar que viene a ser lo mismo. solo utilizas lo necesario para correr el programa.

    la pantalla verde ¿te aparece con todos los videos? ve tratando diferentes formatos y resoluciones, si al final sigue todo igual , puede que no se reconozca tu camara con el JMF, entonces tendrias que registrar para eso instalas el JMF y tiene un panel para chekear si tu camara esta correctamente instalada.

    ResponderEliminar
  12. Amigo, tengo un inconveniente cuando selecciono el video a reproducir. Me aparece el siguiente error principalmente:

    Unable to handle format: MPEG, 1280x720, FrameRate=29.9, Length=1382400
    Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

    Ya que debajo de este vienen muchas lienas más. Pero creo que ahí esta la respuesta. Si me puedes colaborar con eso te lo agradecería inmensamente.

    ResponderEliminar