2012-05-24 1 views
5

Я пытаюсь воспроизводить видео с помощью видеообзора Android. Вот мой код:Как проверить, поддерживается ли файл при помощи android videoview по коду?

super.onCreate(savedInstanceState); 
setContentView(R.layout.video); 
VideoView videoView = (VideoView) findViewById(R.id.videoView); 
videoView.setVideoURI(uri); 
videoView.requestFocus(); 
videoView.start(); 

Это прекрасно работает, однако некоторые телефоны диалоговое окно с названием до сих пор показывают «Невозможно воспроизвести видео».

Мой вопрос в том, как отключить это окно уведомления? Я имею в виду, могу ли я проверить, поддерживается ли видеофайл или нет, перед вызовом videoView.start()? Или я могу отключить или запретить вызывать окно всплывающего окна системы?

Я хотел бы просто пропустить видео, если оно не поддерживается телефоном, без окна уведомлений.

+0

Привет, Вы получили решение для этого? – Noundla

ответ

3

Я использовал setOnErrorListener, прежде чем вы запустите VideoView, чтобы проверить, будет ли воспроизводиться видео.

// Restart if PROBLEM 
    myVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() { 

     public boolean onError(MediaPlayer mp, int what, int extra) { 
      // TODO Auto-generated method stub 
      Intent intent = getIntent(); 
      overridePendingTransition(0, 0); 
      intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); 

      finish(); 

      overridePendingTransition(0, 0); 
      startActivity(intent); 

      return true; 
     } 

    }); 
    myVideoView.start(); 
0

Я нашел еще один простой способ использования MediaPlayer для решения этой проблемы.

try { 
    MediaPlayer mp = MediaPlayer.create(this, uri); 
    mp.release(); 
} catch (Exception e) { 
    Log.e("MediaPlayer", "can NOT play: " + uri); 
} 

Приведенный выше код может отфильтровать большинство видео, которые не поддерживаются VideoView, но она не совершенна, потому что я нашел некоторые не поддерживаемые mkv/mpg видео также пройти тест выше.

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