我有一个VideoView,我从远程服务器流式传输视频。大多数时候它会非常流畅地播放视频。但有时,它会显示错误消息“抱歉,此视频无法播放”。我预感到这更多是支持的视频格式。但是,我不知道哪些是受支持的格式。我的问题是“如何捕获此错误(例如,防止出现错误消息)”?我在这个项目上使用的是Android 2.2。任何建议将不胜感激。 :)
答案 0 :(得分:60)
尝试使用setOnErrorListener:文档说如果未指定侦听器,或者侦听器返回false,则VideoView将通知用户任何错误。,所以我假设你设置一个并返回true它不会显示用户错误。
答案 1 :(得分:7)
我用于此的代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
vView = (VideoView) findViewById(R.id.videoView1);
vSource = "android.resource://com.domain.android/"
+ R.raw.introductionportrait;
vView.setVideoURI(Uri.parse(vSource));
vView.setOnErrorListener(mOnErrorListener);
vView.requestFocus();
vView.start();
}
private OnErrorListener mOnErrorListener = new OnErrorListener() {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
// Your code goes here
return true;
}
};
答案 2 :(得分:4)
我更喜欢在onCreate方法中设置这样的监听器。希望能帮助别人
videoView.setOnErrorListener(new OnErrorListener () {
@Override
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.e(TAG, "Error playing video");
return true;
}
});
答案 3 :(得分:3)
您可以添加如下代码,如果发生任何错误,它将关闭视频查看屏幕。 此外,它不会显示默认弹出窗口,说视频无法播放:)
videoview.setOnErrorListener(new MediaPlayer.OnErrorListener() {
@Override
public boolean onError(MediaPlayer mediaPlayer, int i, int i1) {
finish();
return true;
}
});