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.
private TimerTask task;
//variable de tipo entera encargada de contener el porcentaje de avance de la reproduccion del video
private Timer tiempo ;
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);
}
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".
12 comentarios:
Eres bueno en esto de java, sigue asi gracias por el tutorial esta muy bien
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
hola no trendras una explicacion de un reproductor de video y mp3 saludos
eres bueno en esto
excelente aporte amigo gracias y espero que sigas aportando enverdad eres grande nuevamente gracias
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
MR Mouse sos un calidoso con Java, excelente aporte. Te pasaste de bueno colgando esto.Gracias
muy buen aporte...
podrias 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
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
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.
Puedo reproducir videos de Youtube on line?
Pasarías el reproductor? Me hace falta
Publicar un comentario