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

26/2/10

Reproductor de videos en java: The ProgressBar - parte 5

JAN29


En esta quinta parte del tutorial "reproductor de videos en java", se implementara un simple "ProgressBar" o Barra de Progreso, esta barra se usa para mostrar el progreso en la reproduccion de un video, su implementacion es bastante sencilla y para ello se añadiran nuevos metodos en la clase "paneldevideo.java", los metodos son startAnimation(), encargada de comenzar la animacion del progressbar y mostrarla en la interfaz, stopAnimation(), como su nombre lo dice, detiene la animacion.

Tambien se añadiran nuevos variables, a continuacion se detalla su uso:
// Clase abstracta, nos permitira implementar la animacion, gracias a su metodo run()
private TimerTask task;
//variable de tipo entera encargada de contener el porcentaje de avance de la reproduccion del video
private int frame = 0; 
//Un temporizador
private Timer tiempo ;
// variable de tipo int que nos permite especificar la velocidad de la animacion, un valor de 1000 = 1 segundo
private int speed = 100;

El primer metodo a implementar es el metodo startAnimation(), a este metodo se le pasa como parametro un objeto JProgressBar, luego se crea una nueva instancia del Timer y se implementa la animacion con el TimerTask.

//comienza la animacion y actualiza el JProgressBar
    public void startAnimation(final JProgressBar b){
        //creamos una instancia para el Timer        
        tiempo = new Timer();
        task = new TimerTask(){
            public void run(){
                //calculamos el tiempo de la animacion por 100%
                frame = (int) Math.round((mediaPlayer.getMediaTime().getSeconds() * 100)/mediaPlayer.getDuration().getSeconds());
                //cuando ambos sean iguales quiere decir que el video a alcanzado el final de la reproduccion
                if(mediaPlayer.getMediaTime().getSeconds() == mediaPlayer.getDuration().getSeconds()){
                    frame=100; // 100%
                    STOP();//SE DETIENE Y DESTRUYE EL MEDIA PLAYER
                    stopAnimation(b);//se detiene la animacion
                }
                else // sino
                {
                    // se actualiza el nuevo valor del JProgressBar
                    b.setValue(frame);
                     //Obtiene la longitud en segundos del archivo de video
                     System.out.println("Tiempo total del video: " + mediaPlayer.getDuration().getSeconds() + " segundos");
                     //Obtiene el tiempo en segundos del video en reproduccion
                     System.out.println("Rate: " + mediaPlayer.getMediaTime().getSeconds() + "segundos");
                     //Tiempo transcurrido
                     System.out.println("Tiempo de reproduccion: " + frame + "% de 100%");
                }
            }
        };
        // se inicia la animacion
        tiempo.schedule(task,0, speed);
    }

Para obtener el tiempo total en segundos del video en cuestion se utiliza [PLAYER].getDuration().getSeconds(), este metodo nos devuelve un valor double.
Para obtener el tiempo transcurrido desde que se inicio la reproduccion del video se utiliza el metodo [PLAYER].getMediaTime().getSeconds(), este tambien devuelve un valor double.
Estos dos metodos son suficientes para construir la animacion del progressbar.

El metodo para detener la animacion es:

//detiene la animacion
public void stopAnimation(final JProgressBar b){
    tiempo.cancel();
    task.cancel();
    b.setValue(0);
}

Este metodo detiene el Timer, TimerTask y coloca el valor del JProgressBar en "cero".

El videotutorial
Nota: Para una mejor comprension de este videotutoial se recomienda pasar por los anteriores tutoriales, ya que muchas cosas se pasan por alto, para asi no estar repitiendo lo mismo a cada rato. gracias

12 comentarios:

Diana Flores dijo...

Eres bueno en esto de java, sigue asi gracias por el tutorial esta muy bien

Adolfo Villanueva Paravicino dijo...

Excelente ejemplo yo quiero hacer algo parecido pero para cargar datos de la base de datos hacia un combo o jtable quiza me puedas ayudar en eso... pero este es un buen inicio te agradeceria que colgaras la fuente señor mouse

Anónimo dijo...

hola no trendras una explicacion de un reproductor de video y mp3 saludos

eres bueno en esto

Anónimo dijo...

excelente aporte amigo gracias y espero que sigas aportando enverdad eres grande nuevamente gracias

Dany dijo...

excelente tutorial
solo he tenido un problema
me interesa conocer la api jmf
pero no encuentro documentacion
pero tambien me interesa código para poder pausar el video y poder seleccionar el minuto del video

agradeceria mucho tu ayuda ya que he buscado en muchos blogs y nadie me ha podido ayudar
mi correo es
godsdamned101@gmail.com

muchas gracias y sigue asi

Anónimo dijo...

MR Mouse sos un calidoso con Java, excelente aporte. Te pasaste de bueno colgando esto.Gracias

Marcelo dijo...

muy buen aporte...
podrias pasarme el codigo fuente de este reproductor
mi mail es mar_celo3003@hotmail.com
muchas gracias!!

Ripumaz dijo...

wenoi graciaz man wenoz trabajos me salvaste de unaz gracias man sigue asi,... Ripumas

Anónimo dijo...

hola jc-mouse excelente trabajo..quisiera que me mostraras un ejemplo en donde se utilize el jprogressbar con un llenado de una consulta mysql a un jtable en java

Tsubasa Blood dijo...

Gracias por el tutorial, me ha ayudado bastante, espero sigas haciendo mas... por cierto el info video, se pone algo ahi o es solamente decorativo....
Por cierto buen tutorial, facil de entender.

maxidg dijo...

Puedo reproducir videos de Youtube on line?

maxidg dijo...

Pasarías el reproductor? Me hace falta

Post recomendado