2

ビデオビューがあり、ビデオが開始すると、メディアコントローラーが 3 秒間表示されます。画面をタップしない限り、メディアコントローラーを非表示にしたい。私は試した

MediaController mc= new MediaController();
mc.hide();
Videoview.setMediaController(mc);
..
..
..

しかし、うまくいきませんでした..何か提案はありますか?

4

3 に答える 3

5

これは実際には MediaController を非表示にする解決策ではありませんが、完全に削除したい場合は、次のようにします。

videoView.setMediaController(null);

上記を実行して最初は非表示にすることができます。次に、表示したいときに (onClick または onTouch など)、新しい MediaController を作成し、videoView に設定します。アクションが複数回発生するのを防ぐためにブール値を追加しました。

@Override
public boolean onTouchEvent(MotionEvent ev) {
    if (ev.getAction() == MotionEvent.ACTION_DOWN) {
        if (controllerCreated == false) {
            videoView.setMediaController(mc);
            mc.show();
            controllerCreated = true;
        }
        return true;
    } else {
        return false;
    }
}
于 2011-10-05T19:39:14.843 に答える
1

指定videoView.setMediaController(null)する必要はありません。

問題は、コントローラーが完全に準備されるまでコントローラーを非表示にできないことです。

OnPreparedListener を使用し、コールバック onPrepared で次のように非表示を間接的に行います。

@Override
public void onPrepared (MediaPlayer mp) 
{
    int childs = mediaController.getChildCount();
    for (int i = 0; i < childs; i++)
    {
        View child = mediaController.getChildAt (i);
        child.setVisibility (View.GONE);
    }
}
于 2013-01-07T08:31:33.060 に答える