Intereting Posts
Андроид, снимок экрана с экрана Установите FAB (плавающая кнопка действия) над клавиатурой Как я могу получить доступ к значению BuildConfig в моем файле AndroidManifest.xml? Привязка к службе в onCreate () или in onResume () Нестабильное распознавание лиц с использованием OpenCV Модель памяти Dalvik VM и Java (одновременное программирование на Android) Преимущества использования Bundle вместо прямого намерения putExtra () в Android Как добавить элемент панели действий во время выполнения Пользовательский Drawable для ProgressBar / ProgressDialog Просмотр списка Android Вправо / влево, как журналы вызовов Удаление Android ADT Как использовать интерфейс для связи между двумя действиями Выбрать несколько изображений из галереи Android Почему приложение на Android не должно быть написано на C / C ++, потому что вы просто предпочитаете программировать на C / C ++? Ошибка: для Multi Dex требуется версия Build Tools

Как поймать ошибку «Извините, это видео не может быть воспроизведено» на 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; } });