2012-07-27 19 views
7

Tôi đã sử dụng MediaController trong hoạt động của mình, nhưng khi tôi phát video lần đầu thì có nút tạm dừng b nhìn thấy được nhưng thay vào đó là phát và khi tôi nhấn nút đó thì video bị tạm dừng một cách chính xác và trạng thái vẫn giữ nguyên và sau đó trạng thái hoạt động bình thường. Và điều tương tự cũng xảy ra khi Video hoàn tất. Đây có phải là lỗi hoặc tôi đang làm bất kỳ điều gì sai?Android mediacontroller Điều khiển Pause của Android không hoạt động đúng cách

videoView.setOnPreparedListener(new OnPreparedListener() { 
    @Override 
    public void onPrepared(MediaPlayer mp) { 
      mediaController = new MediaController(VideoPlayerActivity.this){ 
     public void hide(){ 
     } 
     public void show(){ 
      if(isPlayingAd){ 
       super.hide(); 
      }else{ 
       super.show(); 
      } 
     } 
    }; 
    videoView.setMediaController(mediaController); 
    mediaController.setMediaPlayer(videoView); 
    mediaController.show(); 
    } 
}); 

Trả lời

5

Tôi đã gặp sự cố tương tự. Tôi đã không gọi số MediaController.setVideoView như bạn đã nghĩ, vì tôi nghĩ rằng VideoView.setMediaController là đủ để kết nối mọi thứ. Tôi đã thử thêm điều đó, sau đó di chuyển cuộc gọi đến show trong phạm vi onPrepared và giờ đây nó đang hoạt động.

Tôi ước mình hiểu rõ hơn; dự đoán tốt nhất của tôi là có lẽ mọi thứ cần phải được kết nối đúng cách trước khi phương tiện được chuẩn bị và trước khi gọi cho thấy. Trong mọi trường hợp, dưới đây là những gì tôi có:

mMediaController = new MediaController(VideoPlayerActivity.this, false); 

mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {    
    @Override 
    public void onPrepared(MediaPlayer pMp) { 
     mMediaController.show(); 
    }  
}); 

mVideoView.setMediaController(mMediaController); 
mMediaController.setMediaPlayer(mVideoView); 
mVideoView.setVideoPath(uri); // may not be applicable in your case 
mVideoView.requestFocus(); 
mVideoView.start(); 
+0

Tôi đã phải gọi 'mVideoView.start()' trước 'mMediaController.show()'. Cả hai cuộc gọi đều nằm trong 'onPrepared (MediaPlayer pMp)' trong trường hợp của tôi. Đó là cách duy nhất để làm cho nó hoạt động trên thiết bị Samsung với Android 4.2.2 – OneWorld

0

Vì Oneworld đã đề cập đến câu trả lời khác, tôi đã gặp vấn đề tương tự với các thiết bị Samsung cũ. Mặc dù MediaController có dây với VideoView đúng cách, nút play mất đồng bộ hóa của nó cho đến khi tạm dừng và phát lại với MediaController.

Điều này dường như chỉ xảy ra trên các thiết bị Samsung cũ (KitKat và dưới đây tôi đoán).

Giải pháp duy nhất tôi tìm thấy là phát video theo chương trình bởi videoview.start() trước khi hiển thị bộ điều khiển bởi mc.show().