Android mediacontroller Play Pause控件无法正常刷新

时间:2012-07-27 06:39:09

标签: android mediacontroller

我在我的活动中使用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();
    }
});

2 个答案:

答案 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()以编程方式播放视频。