2011-05-23 54 views
16

我一直在为我的应用程序使用mediaController。如何重新定位MediaController?

默认情况下,媒体控制器显示在屏幕的底部。

有没有办法在屏幕中间显示媒体控制器?

+0

[也许这就是答案】(http://stackoverflow.com/a/9563643/544419) – Rongan 2012-03-05 08:37:01

回答

17

放置的MediaController特定位置只有在视频大小已知的情况下才有效。因此,你必须做的:

video.setOnPreparedListener(new OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mp) { 
      mp.setOnVideoSizeChangedListener(new OnVideoSizeChangedListener() { 
            @Override 
            public void onVideoSizeChanged(MediaPlayer mp, int width, int height) { 
              /* 
              * add media controller 
              */ 
              mc = new MediaController(YourActivity.this);; 
              video.setMediaController(mc); 
              /* 
              * and set its position on screen 
              */ 
              mc.setAnchorView(video); 
            } 
            }); 
          } 
      }); 
+0

这是实际工作的答案!无需在XML布局中添加MediaPlayer。在准备自己的同时,只需在VideoView上设置轴向视图即可。如果有人想实现他自己的媒体控制器检查出http://stackoverflow.com/questions/3686729/mediacontroller-positioning-over-videoview – Robert 2014-11-20 08:25:08

0

最后我得到了它..

mediaController.setAnchorView(findViewById(R.id.main_audio_view)); 

使用这个片段,我们可以重新位置的MediaController被放置在基于布局ID或视图的ID

+4

但即使这样,仍然的MediaController出现在底部屏幕 – 2011-08-11 19:14:31

+8

这不起作用 – Ronnie 2011-10-22 00:02:09

+2

我认为这也取决于其他几个因素,比如你在XML中使用什么样的布局 – Ronnie 2011-10-24 17:11:51