4

我的活动中有视频视图,也有 MediaController,但我想从媒体控制器隐藏播放暂停按钮。

这是我的代码:

MediaController mediaController =  new MediaController(this,false);
videoHolder.setMediaController(mediaController);
mediaController.setAnchorView(videoHolder);

请建议我解决方案。

4

3 回答 3

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();
        }
    }); `

为了解释我的代码,基本上媒体控制器是 FrameLayout 的子类,它有一个 LinearLayout 作为位置 0 的子视图组 (viewGroupLevel1),viewGroupLevel1 再次包含两个子视图组,从中获取视图组 (viewGroupLevel2) 从 viewGroupLevel1 位置0. 现在在 viewGroupLevel2 中获取位置 2 的视图,它实际上是一个图像按钮(播放/暂停按钮)。现在您可以轻松隐藏它。干杯!

于 2016-11-01T16:41:51.327 回答
1

你可以看到 http://www.phonesdevelopers.com/1765331/

    MediaController mc = new MediaController(this);  
    mc.setVisibility(View.INVISIBLE);  
    videoView.setMediaController(mc);  

成功了

于 2014-12-26T03:32:59.930 回答
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);
    }
}
于 2013-04-02T12:12:37.970 回答