Q tal tengo hecho un reproductor pero utilizando la libreria JavaZoom y JavaBasicPlayer pero puedo hacer que se mueva el Jslider pero quiero que cuando muevo en el Jslider se me adelante o retroceda la cancionesta es la manera como hago q se mueva el Jslider
lo que se me ocurre hacer en el evento change del Jslider obtener el getValue() y ese valor igualale a changeByte
pero change byte lo obtengo de aqui y no se como hacerlo x ese camino.!!
Gracias Saludos..!!
Código (java) [Seleccionar]
//Creo el timer que entre en el metodo a los 250ms y agrego el evento ActionListener.
Timer tmpActualizar=new Timer(250, new ActionListener() {
public void actionPerformed(ActionEvent e) {
//maxbyte es el numero total de bytes que tiene la cancion
maxByte=(int)reproducir.getTamanoBits();
//changeByte es el numero de bytes que tiene conforme avanza la cancion
changeByte=reproducir.getProgresoActual();
//barraAvance es el Jslider y le mando como maximo maxByte
barraAvance.setMaximum(maxByte);
//Y para que se mueva con ChangeByte y se actualiza cada vez que entra al timer
barraAvance.setValue(changeByte);
//cuando el numero total de bytes es igual a los bytes que transcurren es que se termino la cancion y por lotanto le doy a siguiente cancion if(maxByte==changeByte){
numCancion++;
if(!listaDoble.vacia()&&numCancion<=listaDoble.cantidad()){
if(btnAleatorio.isSelected()){
numCancion=rand(contSong);
}
cambiarCancion();
}else
numCancion--;
}
}
});
tmpActualizar.start();
lo que se me ocurre hacer en el evento change del Jslider obtener el getValue() y ese valor igualale a changeByte
pero change byte lo obtengo de aqui y no se como hacerlo x ese camino.!!
Código (java) [Seleccionar]
// este metodo se actualiza periodicamente pero no lo puedo actualizar porque se actuliza periodicamente y ademas es un metodo que se implementa de la clase BasicPlayer que es la libreria que estoy usando
public void progress(int bytesread, long microseconds, byte[] pcmdata,Map properties) {
float progressUpdate = (float) (bytesread * 1.0f / tamanoBytes * 1.0f);
progressNow = (int) (tamanoBytes * progressUpdate);
}
public int getProgresoActual(){
return progressNow;
}
Gracias Saludos..!!