2014-12-19 3 views
1

Я пытаюсь создать пользовательский воспроизведение видео, которое имеет вид видео и контроллер медиа:Как обновить progressbar медиа-контроллера android?

VideoView mVideoView =(VideoView) findViewById(R.id.videoView); 
mVideoView.setVideoURI(uri); 

MediaController mMediaController = new MyMediaController(this); 
mMediaController.findFocus(); 
mMediaController.setEnabled(true); 
mMediaController.setAnchorView(mVideoView); 
mVideoView.setMediaController(mMediaController); 

Проблема заключается в том, что: когда я программно изменить значение SeekBar:

mVideoView.pause(); 
mVideoView.seekTo(newValue); 

MediaController Безразлично Не обновляйте эти изменения немедленно. Он обновляется только после того, как я снова коснусь его. Может ли кто-нибудь сказать мне правильный способ обновления состояния медиаконтроллера? Спасибо большое!

ответ

1

для этого вы должны установить обработчик, который вызов после того, как каждый второй, как показано ниже code-

static Runnable musicSchedular = new Runnable() { 
    @Override 
    public void run() { 
     resetSeek(); 
    } 
}; 

public static void resetSeek(){ 
    long currentDuration = mediaPlayer.getCurrentPosition(); 
    int cPos = (int)currentDuration/1000; 
    seekBar.setProgress(cPos); 
} 

и когда вы начинаете играть музыку вставить эту строку кода

myHandler.postDelayed(musicSchedular,100); 

надеюсь, что это решит вашу проблему.