ビデオビューがあり、ビデオが開始すると、メディアコントローラーが 3 秒間表示されます。画面をタップしない限り、メディアコントローラーを非表示にしたい。私は試した
MediaController mc= new MediaController();
mc.hide();
Videoview.setMediaController(mc);
..
..
..
しかし、うまくいきませんでした..何か提案はありますか?
ビデオビューがあり、ビデオが開始すると、メディアコントローラーが 3 秒間表示されます。画面をタップしない限り、メディアコントローラーを非表示にしたい。私は試した
MediaController mc= new MediaController();
mc.hide();
Videoview.setMediaController(mc);
..
..
..
しかし、うまくいきませんでした..何か提案はありますか?
これは実際には 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;
}
}
指定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);
}
}