5

アプリで MediaController を使用しています。残念ながら、MediaController は 3 秒後に消えてしまいます。しかし、ビデオが完全に再生されるまで、MediaController を表示したいと考えています。

これを達成する方法。

4

4 に答える 4

11

デフォルトでは、MediaController は 3 秒後に非表示になります。動画の再生中に表示されるようにするには、MediaController の hide() をオーバーライドする必要があります。以下にコードスニペットを示します。

final MediaController mc = new MediaController(this);
video.setMediaController(new MediaController(this) {
    @Override
    public void hide()
    {
       mc.show();
    }

    }); 

video.setMediaController(mc);
于 2012-05-03T13:53:56.640 に答える
2

MediaController の非表示を停止するには、基本クラスを拡張して新しい MediaController を作成します。次に、hide メソッドをオーバーライドするだけで無効にできます。実際の非表示機能を取得するために、基本クラスで hide() メソッドを取得できます。それを使用して、再生が完了した後に Mediacontroller を非表示にすることができます。MediaController のコードは次のとおりです。

public class MediaController_2 extends MediaController{
public MediaController_2(Context context) {
    super(context);
}
public void hide() {
}
public void hidecontroller()    {
    super.hide();
}
}

これで、再生が完了した後でも mediacontroller が非表示になりません。再生が完了した後にコントローラーを非表示にするには、OnCompletionListener を使用できます。

        MediaController_2 mediaController = new MediaController_2(getActivity());
        mediaPlayer.prepare();   
        mediaPlayer.start();
        mediaController.show(0);
        mediaPlayer.setOnCompletionListener(new OnCompletionListener() {
        @Override
        public void onCompletion(MediaPlayer mp) {
                mediaController.hidecontroller();
            }
        });
于 2015-10-12T19:50:04.577 に答える
1

もっと簡潔に

まずint timeout、メソッドのパラメーターとしてan を使用すると、show()何もしませんでした。

次に、この簡潔なコードにより、最初のタッチ後にコントロールが画面に表示されたままになります。

// Assumes you have a VideoView in your layout called 'video_preview'.
VideoView videoPreview = (VideoView) findViewById(R.id.video_preview);

MediaController mediaController = new MediaController(this) {                                                        
    @Override
    public void hide() {}      // Prevent hiding of controls.
};

videoPreview.setMediaController(mediaController);
于 2014-03-17T22:55:04.337 に答える
0
VideoView videoPlayer;
MediaController mediaController;

videoPlayer = view.findViewById(R.id.videoPlayer);
Uri uri = Uri.parse(URL);
videoPlayer.setVideoURI(uri);
mediaController = new MediaController(getContext()) {
    @Override
    public void hide() {}      // on hide do nothing
};
videoPlayer.setMediaController(mediaController);
videoPlayer.requestFocus();
videoPlayer.start();
于 2020-08-11T19:03:18.800 に答える