我在我的活动中使用MediaController工作正常,但是当我第一次播放视频时,应该有b暂停按钮可见但是有播放,当我按下该按钮时,视频暂停,状态保持不变之后它正常工作。视频完成后也会发生同样的事情。 这是一个错误还是我做错了什么?
videoView.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mediaController = new MediaController(VideoPlayerActivity.this){
public void hide(){
}
public void show(){
if(isPlayingAd){
super.hide();
}else{
super.show();
}
}
};
videoView.setMediaController(mediaController);
mediaController.setMediaPlayer(videoView);
mediaController.show();
}
});
答案 0 :(得分:6)
我一直有同样的问题。我没有像你那样打电话给MediaController.setVideoView
,因为我认为VideoView.setMediaController
足以让你接线。我尝试添加,然后将调用转移到show
内的onPrepared
,现在它正在运行。
我希望我有更好的理解;我最好的猜测是,在准备媒体之前和调用show之前,所有内容都需要正确连接。无论如何,这就是我所拥有的:
mMediaController = new MediaController(VideoPlayerActivity.this, false);
mVideoView.setOnPreparedListener( new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer pMp) {
mMediaController.show();
}
});
mVideoView.setMediaController(mMediaController);
mMediaController.setMediaPlayer(mVideoView);
mVideoView.setVideoPath(uri); // may not be applicable in your case
mVideoView.requestFocus();
mVideoView.start();
答案 1 :(得分:0)
正如Oneworld在另一个答案中所提到的,我对旧的三星设备也存在同样的问题。即使MediaController正确连接VideoView,播放按钮也会失去同步,直到暂停并再次使用MediaController播放。
这件事似乎只发生在旧的三星设备上(我猜是KitKat以下)。
我找到的唯一解决方案是在通过mc.show()显示控制器之前通过videoview.start()以编程方式播放视频。