2011-10-11 2 views

답변

23

마침내 나는 그것을 알아 냈다!

나는 이런 식으로 뭔가했다 해낸 해결책 : 모든

먼저

videoView.setOnPreparedListener(new OnPreparedListener() { 

     @Override 
     public void onPrepared(MediaPlayer mp) { 

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

이 실행 가능한이 진행 막대를 업데이트 계속됩니다 비디오의 지속 시간 SeekBar를위한 최대 진행 상황을 설정 :

private Runnable onEverySecond=new Runnable() { 

    @Override 
    public void run() { 

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

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

    } 
}; 

그리고 SeekBar를위한 setOnSeekBarChangeListener는 사용자가 미디어에 노력 취할 수 있습니다

. fromUser 부울을 사용함으로써 우리는 회신에 대한

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

위대한! 하지만 비디오가 끝날 때 나는'videoView.start()'를 다시 재생하고자 할 때 seekBar가 작동하지 않는다면 어떻게이 문제를 해결할 수 있을까요? –

0

seconday progress을 설정합니다.

아니요, 올바른 방향입니다. 스트림 (미디어)의 다운로드 진행률 및 현재 위치와 같은 항목을 표시하는 데 아주 좋습니다.

+0

감사 전화 인해 사용자의 상호 작용에 다시이었다 또는 여부를 만들 수 있습니다. 하지만 스트리밍 된 양을 보여주기 위해 보조 진행 상황을 사용 중입니다. 나는 내가 생각해내는 것 아래에 게시 중입니다. –