Как поймать ошибку «Извините, это видео не может быть воспроизведено» на VideoView

У меня есть VideoView, и я транслирую видео с удаленного сервера. В большинстве случаев он воспроизводит видео очень гладко. Но иногда появляется сообщение об ошибке «Извините, это видео невозможно воспроизвести». У меня есть догадка, что это больше в поддерживаемых форматах видео. Однако я не знаю, какие поддерживаемые форматы. Мой вопрос: «Как я могу поймать эту ошибку (например, предотвратить появление сообщения об ошибке)»? Я использую Android 2.2 в этом проекте. Любые советы будут очень признательны. 🙂

Solutions Collecting From Web of "Как поймать ошибку «Извините, это видео не может быть воспроизведено» на VideoView"

Попробуйте использовать setOnErrorListener : в документации указано, что если ни один прослушиватель не указан, или если слушатель вернулся с ошибкой, 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; } }); 

Вы можете добавить код, как показано ниже, он закроет экран просмотра видео, если возникнет какая-либо ошибка. Кроме того, он не будет отображать всплывающее окно по умолчанию, говорящее, что видео не может воспроизводиться 🙂

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