如何捕捉VideoView的“对不起,这个video不能播放”错误

我有一个VideoView,我从远程服务器streamvideo。 大多数时候它会非常顺利地播放video。 但有时会显示错误讯息“对不起,此影片无法播放”。 我有一个预感,这是更多的支持的video格式。 但是,我不知道哪些是支持的格式。 我的问题是“我怎样才能捕捉到这个错误(例如,防止错误消息出现)”? 我在这个项目上使用Android 2.2。 任何build议将不胜感激。 🙂

尝试使用setOnErrorListener :文档说如果没有指定侦听器,或者如果侦听器返回false,VideoView将通知用户任何错误。 ,所以我假设如果你设置一个,并返回true它不会显示用户错误。

我用这个代码:

@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; } }; 

我更喜欢在onCreate方法中设置这样的监听器。 希望能帮助别人

 videoView.setOnErrorListener(new OnErrorListener () { @Override public boolean onError(MediaPlayer mp, int what, int extra) { Log.e(TAG, "Error playing video"); return true; } }); 

您可以添加下面的代码,如果发生错误,它会closuresvideo查看屏幕。 此外,它不会显示说video的默认popup不能播放:)

  videoview.setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer mediaPlayer, int i, int i1) { finish(); return true; } });