我的活动中有视频视图,也有 MediaController,但我想从媒体控制器隐藏播放暂停按钮。
这是我的代码:
MediaController mediaController = new MediaController(this,false);
videoHolder.setMediaController(mediaController);
mediaController.setAnchorView(videoHolder);
请建议我解决方案。
我的活动中有视频视图,也有 MediaController,但我想从媒体控制器隐藏播放暂停按钮。
这是我的代码:
MediaController mediaController = new MediaController(this,false);
videoHolder.setMediaController(mediaController);
mediaController.setAnchorView(videoHolder);
请建议我解决方案。
我设法实现了同样的目标。默认情况下,媒体控制器不公开任何隐藏播放/暂停控件的方法。因此,我们必须遍历 Media Controller 的子视图,获取所需的视图并对该视图做任何你想做的事情。
就我而言,我是按照以下方式进行的->
videoPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
LinearLayout viewGroupLevel1 = (LinearLayout) media_Controller.getChildAt(0);
LinearLayout viewGroupLevel2 = (LinearLayout) viewGroupLevel1.getChildAt(0);
View view = viewGroupLevel2.getChildAt(2);
view.setVisibility(View.GONE);
videoPlayer.start();
}
}); `
为了解释我的代码,基本上媒体控制器是 FrameLayout 的子类,它有一个 LinearLayout 作为位置 0 的子视图组 (viewGroupLevel1),viewGroupLevel1 再次包含两个子视图组,从中获取视图组 (viewGroupLevel2) 从 viewGroupLevel1 位置0. 现在在 viewGroupLevel2 中获取位置 2 的视图,它实际上是一个图像按钮(播放/暂停按钮)。现在您可以轻松隐藏它。干杯!
你可以看到 http://www.phonesdevelopers.com/1765331/
MediaController mc = new MediaController(this);
mc.setVisibility(View.INVISIBLE);
videoView.setMediaController(mc);
成功了
试试看(不确定)
使用 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);
}
}