Foro de elhacker.net

Programación => Java => Mensaje iniciado por: drHack en 11 Noviembre 2011, 07:01 am



Título: Ayuda con Jslider para reproductor
Publicado por: drHack en 11 Noviembre 2011, 07:01 am
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
  1.        //Creo el timer que entre en el metodo a los 250ms y agrego el evento ActionListener.
  2.        Timer tmpActualizar=new Timer(250, new ActionListener() {
  3.            public void actionPerformed(ActionEvent e) {
  4.                //maxbyte es el numero total de bytes que tiene la cancion
  5.                maxByte=(int)reproducir.getTamanoBits();
  6.  
  7.                //changeByte es el numero de bytes que tiene conforme avanza la cancion                
  8.                changeByte=reproducir.getProgresoActual();
  9.  
  10.                //barraAvance es el Jslider y le mando como maximo maxByte
  11.                barraAvance.setMaximum(maxByte);
  12.  
  13.                //Y para que se mueva con ChangeByte y se actualiza cada vez que entra al timer
  14.                barraAvance.setValue(changeByte);
  15.  
  16.  
  17.                //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){
  18.                 numCancion++;
  19.                 if(!listaDoble.vacia()&&numCancion<=listaDoble.cantidad()){
  20.                        if(btnAleatorio.isSelected()){
  21.                            numCancion=rand(contSong);
  22.                        }
  23.                        cambiarCancion();
  24.                    }else
  25.                        numCancion--;
  26.                }
  27.  
  28.            }
  29.        });
  30.        tmpActualizar.start();
  31.  

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
  1.  
  2. // 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
  3. public void progress(int bytesread, long microseconds, byte[] pcmdata,Map properties) {
  4.        float progressUpdate = (float) (bytesread * 1.0f / tamanoBytes * 1.0f);
  5.        progressNow = (int) (tamanoBytes * progressUpdate);
  6.    }
  7.  
  8.    public int getProgresoActual(){
  9.        return progressNow;
  10.    }


Gracias Saludos..!!