Ayuda con Jslider para reproductor

Iniciado por drHack, 11 Noviembre 2011, 07:01 AM

0 Miembros y 1 Visitante están viendo este tema.

drHack

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

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..!!