2011-05-23 2 views
16

Я использую mediaController для своего приложения.Как переместить MediaController?

По умолчанию Media Controller отображается в нижней части экрана.

Есть ли способ отображения медиа-контроллера в середине экрана?

+0

[Возможно, это ответ] (http://stackoverflow.com/a/9563643/544419) – Rongan

ответ

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

Ответ на самом деле работает! Не нужно добавлять MediaPlayer в макет XML. Просто setAnchorView в то время как VideoView при подготовке себя. В случае, если кто-то хочет реализовать свой собственный медиаконтроллер, посмотрите http://stackoverflow.com/questions/3686729/mediacontroller-positioning-over-videoview – Robert

0

Наконец я получил его ..

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

Использование этого фрагмента мы можем повторно позиционировать MediaController быть размещены в определенном положении на основании идентификатора макета или идентификатору видом в

+4

Но даже с этим, MediaController все еще появляется в нижней части на экране –

+8

это не работает – Ronnie

+2

Я думаю, что это также зависит от нескольких других факторов, таких как макет, который вы используете в своем XML. – Ronnie