1

Ich versuche, Videodatei durch Absicht auszuwählen und Metadaten aus dem Video extrahieren.Android: MediaMetadataRetriever verursacht "java.lang.RuntimeException: setDataSource fehlgeschlagen: status = 0x80000000"

Allerdings habe ich einige Fehlerberichte von Benutzern und Berichterstattung folgende Ausnahme:

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 

Hier ist der Code Meta-Daten greifen:

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();   
    } 
} 

Warum die Ausnahme erscheint und wie man es beheben ?

+0

Haben Sie Fortschritte dabei gemacht? Ich habe das gleiche Problem noch ohne Erfolg untersucht und es kommt nur bei KK-Geräten in meinen Tests vor –

Antwort

0

Ein Problem mit dieser Methode in neueren API-Versionen ist, dass es offenbar Berechtigungen erfordert, und das ist nicht immer offensichtlich Form die Fehlermeldung - siehe diese Diskussion: https://code.google.com/p/android/issues/detail?id=35794

Wenn dies das Problem ist dann für Ihren Fall I Ich denke, Ihre URI sieht so aus, als wäre sie in einer lokalen Datei, so dass Sie Lese-/Schreibrechte für Dateien benötigen. Wenn es eine Internet-URL wäre, dann würden Sie eine Internet-Erlaubnis wünschen.

Verwandte Themen