Wenn ich mein Audio vom MIC aufnehme und die Datei unter / data / data / ..... speichere, warum MediaPlayer kann diese Datei nicht abspielen? Wenn ich das Ziel nach / ändere SDcard / ..... - alles funktioniert super. Ich mache etwas falsch ? Ich habe nicht gefunden Einschränkung für MediaPlayer. Gerät - Samsung T959 (Galaxy S) Danke, ich hoffe, jemand weiß Lösung ....
Ich hatte die gleichen Probleme ... wenn ich setDataSource mit Dateipfaden verwendete, würde es nicht funktionieren; habe immer IOException bekommen.
das Ändern meines Codes, um setDataSource (FileDescriptor) zu verwenden, funktioniert ... und damit muss ich die Dateien nicht auf SDCard oder ähnliches kopieren.
Erstellen Sie also mit einem einfachen File-Objekt einen neuen FileInputStream und übergeben Sie den eigentlichen Dateideskriptor als Datenquelle wie in:
%Vor%Beim Erstellen eines Eingabestroms werden die Dateidaten in den Speicher gezogen und dadurch Adressen / Daten / Datenzugriffsverletzungen.
Besser ist es, den Stream wie folgt zu schließen:
%Vor%Es ist in der Dokumentation der Methode vermerkt:
android.media.MediaPlayer.setDataSource(FileDescriptor fd)
Legt die zu verwendende Datenquelle (
FileDescriptor
) fest. Es ist der Anrufer Verantwortung, den Dateideskriptor zu schließen . Es ist sicher, dies zu tun als sobald dieser Anruf zurückkehrt .
Versuchen Sie, ContentValues festzulegen und einige Standard-Metadateneigenschaften zu speichern. Verwenden Sie dann einen ContentResolver, um die Metadaten und Uri auf die Datei zu setzen.
siehe: Ссылка
"Beispiel: Audioaufnahme Setup und Start", dann ändern Sie Uri base
zu Ihrem / data / data / -Dateiname.
Aufgrund des Android-Sicherheitsmodells haben MediaPlayer nicht genügend Rechte. Es kann auf die SD-Karte zugreifen, aber es kann nicht auf andere Orte mit fehlenden Berechtigungen zugreifen.
Damit kann setDataSource (...) SecurityException auslösen und ich denke, dass es passiert.
Tags und Links android