2011-05-23 12 views
16

Tôi đã sử dụng mediaController cho ứng dụng của mình.Làm cách nào để định vị lại MediaController?

Theo mặc định, Bộ điều khiển phương tiện được hiển thị ở cuối màn hình.

Có cách nào để hiển thị Bộ điều khiển phương tiện ở giữa màn hình thay thế không?

+0

[Có lẽ đây là câu trả lời] (http://stackoverflow.com/a/9563643/544419) – Rongan

Trả lời

17

Đặt mediacontroller chỉ hoạt động nếu kích thước video được biết. Vì vậy bạn sẽ phải làm:

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

Đây là câu trả lời thực sự làm việc! Không cần phải thêm MediaPlayer vào bố cục XML. Chỉ cần thiết lậpAnchorView trong khi VideoView trong khi chuẩn bị chính nó. Trong trường hợp ai đó muốn triển khai bộ điều khiển phương tiện của riêng mình, hãy kiểm tra http://stackoverflow.com/questions/3686729/mediacontroller-positioning-over-videoview – Robert

0

Cuối cùng tôi đã nhận nó ..

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

Sử dụng đoạn mã này, chúng ta có thể tái vị trí mediacontroller được đặt ở một vị trí cụ thể dựa trên id bố trí hoặc id của một cái nhìn

+4

Nhưng ngay cả với điều này, các MediaController vẫn xuất hiện ở dưới cùng của màn hình –

+8

điều này không hoạt động – Ronnie

+2

Tôi nghĩ rằng điều này cũng phụ thuộc vào một số yếu tố khác như những gì bố trí bạn đang sử dụng trong XML của bạn – Ronnie