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 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 ;
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;
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
Eres bueno en esto de java, sigue asi gracias por el tutorial esta muy bien
ResponderEliminarExcelente 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
ResponderEliminarhola no trendras una explicacion de un reproductor de video y mp3 saludos
ResponderEliminareres bueno en esto
excelente aporte amigo gracias y espero que sigas aportando enverdad eres grande nuevamente gracias
ResponderEliminarexcelente tutorial
ResponderEliminarsolo 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
MR Mouse sos un calidoso con Java, excelente aporte. Te pasaste de bueno colgando esto.Gracias
ResponderEliminarmuy buen aporte...
ResponderEliminarpodrias pasarme el codigo fuente de este reproductor
mi mail es mar_celo3003@hotmail.com
muchas gracias!!
wenoi graciaz man wenoz trabajos me salvaste de unaz gracias man sigue asi,... Ripumas
ResponderEliminarhola 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
ResponderEliminarGracias por el tutorial, me ha ayudado bastante, espero sigas haciendo mas... por cierto el info video, se pone algo ahi o es solamente decorativo....
ResponderEliminarPor cierto buen tutorial, facil de entender.
Puedo reproducir videos de Youtube on line?
ResponderEliminarPasarías el reproductor? Me hace falta
ResponderEliminar