Reproductor de videos en java: La Interfaz - 1ra Parte PRIMERA PARTE CREANDO EL PROYECTO Y LA INTERFAZ INICIAL
Cureoseando el API de Java Media Framework que me sirvio para realizar el post "Reproducir video en java" java", me decidi a realizar una secuencia de videotutoriales donde ire explicando paso a paso como crear un reproductor multimedia con las opciones básicas de reproducción (PLAY, STOP, MUTE, volumen, etc) y al mismo tiempo profundizando un poco mas en el lenguaje java, asi como en el API JMF. Pero mejor vamos a lo que importa. PRIMERA PARTE CREANDO EL PROYECTO Y LA INTERFAZ INICIAL
El proyecto inicial Nombre de Proyecto: reproductorjava
La interfaz inicial Esta interfaz es un BETA, solamente trata de mostrar groso modo hacia donde se quiere llegar con el proyecto y asi tener una idea basica para poder comenzar a programar. La misma puede llegar a cambiar a medida de que se vaya avanzando con el proyecto
Que necesitamos
El API Java Media Framework , descargatelo de su pagina e instalalo EL IDE elegido para el proyecto es Netbeans 6.0
Tambien puedes pasar por este post para familiarisarte con el codigo de JMF, tambien puedes encontrar buenos tutoriales en la pagina de SUN, pero lastimosamente estan en ingles.
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 import import import import import import import import import
java.awt.Component; java.awt.Dimension; java.io.IOException; java.net.URL; java.util.logging.Level; java.util.logging.Logger; javax.media.CannotRealizeException; javax.media.Manager; javax.media.NoPlayerException; 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
} RE, null, } RE, null, } RE, null, } } }
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.SEVE ex); catch (NoPlayerException ex) { Logger.getLogger(paneldevideo.class.getName()).log(Level.SEVE ex); catch (CannotRealizeException ex) { Logger.getLogger(paneldevideo.class.getName()).log(Level.SEVE ex);
Reproductor de videos en java: Los controles - 3ra parte TERCERA PARTE CONTROLES DE REPRODUCCION DE LA API DE JAVA MEDIA FRAMEWORK
En esta tercera parte del video tutorial " Reproductor de videos en java " se introducen los controles de reproduccion PLAY, STOP, MUTE, asi como el control de volumen, todo esto haciendo uso de las herramientas graficas de netbeans.
La clase paneldevideo.java modificada:
import import import import import import import import import import
java.awt.Component; java.awt.Dimension; java.io.IOException; java.net.URL; java.util.logging.Level; java.util.logging.Logger; javax.media.CannotRealizeException; javax.media.Manager; javax.media.NoPlayerException; 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{ private Player mediaPlayer; private Component video; //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 video = mediaPlayer.getVisualComponent(); // añadimos al componente las dimensiones del contenedor
} RE, null, } RE, null, } RE, null, } }
video.setSize(d); add(video); //control de excepciones catch (IOException ex) { Logger.getLogger(paneldevideo.class.getName()).log(Level.SEVE ex); catch (NoPlayerException ex) { Logger.getLogger(paneldevideo.class.getName()).log(Level.SEVE ex); catch (CannotRealizeException ex) { Logger.getLogger(paneldevideo.class.getName()).log(Level.SEVE ex);
//volumen public float getvolumen(){ return mediaPlayer.getGainControl().getLevel(); } //coloca un valor float correspondiente al volumen public void setvolumen(float volumen){ mediaPlayer.getGainControl().setLevel(volumen); } //control de MUTE public void MUTE(){ if(mediaPlayer.getGainControl().getMute()) { mediaPlayer.getGainControl().setMute(false); } else { mediaPlayer.getGainControl().setMute(true); } } //controlde PLAY y STOP
public void STOP(){ mediaPlayer.stop(); video.hide(); } public void PLAY(){ mediaPlayer.start(); video.show(); } }
1. La Interfaz 2. Introduccion a la API JMF