Android mediacontroller воспроизведение паузы управления не обновляется должным образом
я использовал MediaController в своей деятельности, но когда я играю видео в первый раз, тогда должна быть видна кнопка паузы b, но вместо этого есть воспроизведение, и когда я нажимаю эту кнопку, то видео приостанавливается правильно, и состояние остается тем же, и после этого его работа правильно. И то же самое происходит, когда они завершены. Это ошибка или я делаю что-то не так?
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();
}
});
2 ответов
у меня была такая же проблема. Я не звал было достаточно для проводки вещи. Я попытался добавить это, а затем переместить вызов в show
внутри onPrepared
, и теперь он работает.
Я бы хотел лучше понять; думаю, что, возможно, все должно быть подключено правильно перед СМИ, и перед вызовом шоу. Во всяком случае, вот что у меня есть:
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();
Как Oneworld упоминалось в другом ответе, у меня была та же проблема со старыми устройствами Samsung. Хотя MediaController подключен к VideoView правильно, кнопка воспроизведения теряет синхронизацию до паузы и снова воспроизводится с MediaController.
эта вещь, кажется, происходит только на старых устройствах Samsung (KitKat и ниже, я думаю).
единственным решением, которое я нашел, было воспроизведение видео программно с помощью videoview.start () перед показом контроллера mc.шоу.)(