我使用VideoView与MediaController和MediaPlayer播放HLS流(普通mp4文件不会出现此问题)。
当视频播放完毕并且我尝试使用搜索栏时,我收到logcat错误: E / MediaPlayer:错误(1,-1004),活动显示无法播放此视频< / strong>对话框。我怎么能防止这种情况?我已经尝试过像这样实现MediaPlayer.OnCompletionListener
界面:
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
videoView.setVideoURI(Uri.parse(...));
videoView.start();
videoView.pause();
}
但它不起作用。
答案 0 :(得分:1)
取决于您真正想做的事情以及视频流的运作方式:
如果您想循环播放视频 - 因为您的onCompletion()有点尝试这样做 - 您可以尝试使用setLooping(true)
最终,您可以将错误处理改进为:
yourPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
if (mp.isPlaying())
mp.stop();
mp.reset();
mp.play();
return true;
}
});
编辑: