Wie lese ich die Länge des Videos, das mit MediaRecorder aufgenommen wurde, in das private App-Speicherverzeichnis, das über context.getFilesDir () erstellt wurde?

8

Ich habe ein merkwürdiges Problem mit der Länge / Dauer einer Videodatei, die mit der Kamera eines Geräts aufgenommen wurde, indem ich MediaRecorder verwende. Die Datei wird im privaten Speicherverzeichnis der Anwendung gespeichert, das wie folgt festgelegt ist:

%Vor%

Nachdem die Aufnahme abgeschlossen ist, versuche ich die Länge des Videos mit diesen Methoden zu lesen:

Methode 1:

%Vor%

Methode 2:

%Vor%

Keine der Methoden funktioniert. mediaMetadataRetriever.extractMetadata gibt null zurück und MediaPlayer.create schlägt mit einer IOException fehl. Ich habe überprüft, dass die Datei existiert.

Wichtiger Hinweis: Dieses Problem tritt NICHT auf, wenn ich die Aufzeichnung in "/sdcard/recordings/webcam.3gpp" speichere. Aus irgendeinem Grund kann ich die Dauer nicht lesen, wenn sich die Datei in dem privaten Dateiverzeichnis befindet, das zu der Anwendung gehört. Außerdem passiert dieses Problem NUR auf meinem Samsung Droid Charge, auf dem Android 2.3 läuft. Es passiert NICHT auf einem Samsung Galaxy S4, auf dem Android 4.2 läuft, und auf dem Asus Nexus 7, auf dem Android 4.3 läuft.

Bearbeiten:

Wenn ich die selbe Datei nehme und auf die SD-Karte kopiere, dann lese die Länge dort, alles funktioniert. Was gibt?

%Vor%

Was kann ich tun, um dieses Problem zu lösen?

    
BVB 30.10.2013, 17:16
quelle

1 Antwort

6

Ich konnte mein Problem lösen, indem ich FileInputStream als Datenquelle von MediaPlayer festlegte.

%Vor%

Die Quelle meiner Antwort kommt von Ссылка

    
BVB 31.10.2013, 15:27
quelle