2011-10-11 12 views

risposta

23

Finalmente l'ho capito !!

La soluzione che mi è venuta è stata qualcosa di simile:

Prima di tutto impostare il progresso massimo per SeekBar come la durata del video

videoView.setOnPreparedListener(new OnPreparedListener() { 

     @Override 
     public void onPrepared(MediaPlayer mp) { 

      seekBar.setMax(videoView.getDuration()); 
      seekBar.postDelayed(onEverySecond, 1000); 
     } 
    }); 

Questo eseguibile continuerà ad aggiornare il progressbar :

private Runnable onEverySecond=new Runnable() { 

    @Override 
    public void run() { 

     if(seekBar != null) { 
      seekBar.setProgress(videoView.getCurrentPosition()); 
     } 

     if(videoView.isPlaying()) { 
      seekBar.postDelayed(onEverySecond, 1000); 
     } 

    } 
}; 

E poi il setOnSeekBarChangeListener per SeekBar può essere utilizzato per portare l'utente cerca sul supporto. Usando il FROMUSER booleano possiamo capire se si trattava di una chiamata indietro a causa di interazione dell'utente o le

seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 

     @Override 
     public void onStopTrackingTouch(SeekBar seekBar) { 
     } 

     @Override 
     public void onStartTrackingTouch(SeekBar seekBar) { 
     } 

     @Override 
     public void onProgressChanged(SeekBar seekBar, int progress, 
       boolean fromUser) { 

      if(fromUser) { 
       // this is when actually seekbar has been seeked to a new position 
       videoView.seekTo(progress); 
      } 
     } 
    }); 
+0

fantastico! ma quando il video va alla fine e voglio giocare a 'videoView.start()' di nuovo seekBar non funziona, come risolvere questo problema? –

0

Impostare seconday progress.

No, sei sulla strada giusta. È molto buono per la visualizzazione di materiale come l'avanzamento del download e la posizione corrente degli stream (media).

+0

Grazie per la risposta. Ma sto usando il progresso secondario per mostrare l'importo in streaming. Sto postando sotto quello che ho scoperto. –

Problemi correlati