2012-05-24 15 views
5

Sto provando a riprodurre video da videoview Android. Qui è il mio codice:Come verificare se il file è supportato da videoview Android per codice?

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

Questo funziona bene, ma alcuni telefoni cellulari mostrano ancora la finestra di dialogo con il titolo "Impossibile riprodurre video".

La mia domanda è come disabilitare questa finestra di notifica? Voglio dire, posso controllare se il file video è supportato o meno prima di chiamare videoView.start()? O posso disabilitare o impedire di chiamare la finestra di notifica popup del sistema?

Vorrei semplicemente saltare il video se non supportato dal telefono, senza la finestra di notifica.

+0

Ciao, hai trovato la soluzione per questo? – Noundla

risposta

3

Ho usato setOnErrorListener prima di avviare VideoView per controllare se il video verrà riprodotto.

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

Ho trovato un altro modo semplice di utilizzare MediaPlayer per risolvere parte di questo problema.

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

Il codice di cui sopra può filtrare la maggior parte dei video che non supportati da VideoView, ma non è perfetto, perché ho trovato alcuni non-supportati mkv/mpg video anche superare la prova di cui sopra.

In ogni caso, è un'altra linea di pensiero. L'ho postato qui, e spero che qualcuno possa migliorarlo.

Problemi correlati