1

J'essaie de choisir le fichier vidéo par l'intention et extraire les méta-données de la vidéo.Android: MediaMetadataRetriever causé "java.lang.RuntimeException: setDataSource échoué: status = 0x80000000"

Cependant, j'ai eu quelques rapports d'erreurs des utilisateurs et des rapports suivants exception:

Exception java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=12004, result=-1, data=Intent { dat=content://media/external/images/media/63141 flg=0x1 (has extras) }} to activity {my.app/my.app.VideoActivity}: 
java.lang.RuntimeException: setDataSource failed: status = 0x80000000 

Voici le code saisissant des données meta:

protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 
    Uri uri = intent.getData(); 
    MediaMetadataRetriever retriever = new MediaMetadataRetriever(); 
    try { 
     retriever.setDataSource(this, uri); // error occurs here 
    } catch (IllegalArgumentException e) { 
     e.printStackTrace();   
    } catch (SecurityException e) { 
     e.printStackTrace();   
    } 
} 

Pourquoi l'exception apparaît et comment y remédier ?

+0

avez-vous progressé dans ce sens? Enquêter sur le même problème sans succès et cela ne se produit que sur les appareils KK dans mes tests –

Répondre

0

Un problème avec cette méthode dans les plus récentes versions de l'API est qu'il requiert des autorisations manifestes et ce n'est pas toujours forme évidente le message d'erreur - voir cette discussion: https://code.google.com/p/android/issues/detail?id=35794

Si tel est le problème alors pour votre cas, je pense que votre URI ressemble à un fichier local, donc vous voudriez avoir une autorisation de lecture/écriture de fichier. Si c'était une URL internet alors vous voudriez l'autorisation d'Internet.