2012-05-24 8 views
5

Estoy tratando de reproducir video por videoview de Android. Aquí está mi código:¿Cómo verificar si el archivo es compatible con la vista de video de Android por código?

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

Esto funciona bien, sin embargo algunos teléfonos siguen mostrando cuadro de diálogo con el título "No se puede reproducir el vídeo".

Mi pregunta es ¿cómo desactivar esta ventana de notificación? Quiero decir, ¿puedo verificar si el archivo de video es compatible o no antes de llamar a videoView.start()? ¿O puedo desactivar o evitar llamar a la ventana emergente de notificaciones del sistema?

Me gustaría simplemente omitir el video si no es compatible con el teléfono, sin la ventana de notificación.

+0

Hola, ¿obtuviste la solución para esto? – Noundla

Respuesta

3

Utilicé setOnErrorListener antes de iniciar VideoView para verificar si se reproducirá el video.

// 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

he encontrado otra manera fácil de utilizar MediaPlayer para resolver parte de este problema.

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

El código anterior puede filtrar la mayoría de los vídeos que no soportados por VideoView, pero no es perfecto, porque he encontrado algunos que no son compatibles-mkv/mpg videos también pasan la prueba anterior.

De todos modos, es otra línea de pensamiento. Lo publiqué aquí, y espero que alguien pueda mejorarlo.

Cuestiones relacionadas