在android中隐藏媒体控制器的播放暂停按钮

时间:2013-04-02 12:06:13

标签: android android-videoview

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

这是我的代码:

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

请建议我解决方案。

3 个答案:

答案 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);
    }
}