我的视频在我的活动中也有MediaController,但我想隐藏媒体控制器中的播放暂停按钮。
这是我的代码:
MediaController mediaController = new MediaController(this,false);
videoHolder.setMediaController(mediaController);
mediaController.setAnchorView(videoHolder);
请建议我解决方案。
答案 0 :(得分:4)
我设法实现了同样的目标。默认情况下,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();
}
});
为了解释我的代码,Basically Media Controller是FrameLayout的子类,它在位置0有一个LinearLayout作为子视图组(viewGroupLevel1),同样viewGroupLevel1包含两个子视图组,其中从中获取viewgroup(viewGroupLevel2) viewGroupLevel1在第0位。现在在viewGroupLevel2中获取位置2的视图,它实际上是一个图像按钮(播放/暂停按钮)。现在您可以轻松隐藏它。干杯!
答案 1 :(得分:1)
你可以看到 http://www.phonesdevelopers.com/1765331/
MediaController mc = new MediaController(this);
mc.setVisibility(View.INVISIBLE);
videoView.setMediaController(mc);
它有效
答案 2 :(得分:0)
尝试(不确定)
使用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);
}
}