如何更新媒体控制器android的进度条?

时间:2014-12-19 08:01:45

标签: android seekbar android-video-player mediacontroller

我正在尝试创建自定义视频播放,其中包含视频视图和媒体控制器:

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);

问题在于:当我以编程方式更改搜索栏的值时:

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

MediaController不会立即更新这些更改。它只在我再次触摸后更新。谁能告诉我更新媒体控制器状态的正确方法?非常感谢!

1 个答案:

答案 0 :(得分:1)

为此你必须设置一个在每一秒后调用的处理程序,如下面的代码 -

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);

希望它能解决你的问题。