8

私は自分のアクティビティでMediaControllerを使用しましたが、ビデオを初めて再生すると、一時停止ボタンが表示されますが、代わりに再生があり、そのボタンを押すと、ビデオは正しく一時停止され、状態は同じままになります。その正常に動作します。そして、ビデオが完了したときにも同じことが起こります。これはバグですか、それとも私は何か間違ったことをしていますか?

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();
    }
});
4

2 に答える 2

6

私は同じ問題を抱えています。配線には十分MediaController.setVideoViewだと思っていたので、あなたのように電話をかけていませんでした。VideoView.setMediaControllerそれを追加してから、呼び出しをshowonPreparedに移動してみましたが、動作しています。

もっとよく理解できたらいいのにと思います。私の最善の推測は、メディアが準備される前に、そしてショーを呼び出す前に、おそらくすべてが適切に配線される必要があるということです。いずれにせよ、これが私が持っているものです:

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();
于 2012-08-04T00:01:00.910 に答える
0

Oneworldが他の回答で述べたように、私は古いSamsungデバイスで同じ問題を抱えていました。MediaControllerがVideoViewに正しく接続されていても、再生ボタンは一時停止してMediaControllerで再度再生するまで同期を失います。

このことは、古いSamsungデバイス(KitKat以下だと思います)でのみ発生するようです。

私が見つけた唯一の解決策は、mc.show()でコントローラーを表示する前に、videoview.start()でプログラムでビデオを再生することでした。

于 2016-06-30T14:02:36.593 に答える