Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

Попробуйте использовать setOnErrorListener: в документации указано, что если ни один прослушиватель не указан, или если слушатель вернулся с ошибкой, VideoView сообщит пользователю любые ошибки., поэтому я предполагаю, что если вы установите его и вернете true, он не покажет ошибку пользователя.

Ответ 2

Код, который я использовал для этого:

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

Ответ 3

Я предпочитаю устанавливать такие слушатели в методе onCreate. Надеюсь, кто-то поможет

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

Ответ 4

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

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