Ich versuche, ein Video abzuspielen, das im internen Speicher von Android gespeichert ist. Aber egal was ich tue, es kommt immer entweder mit einem -1 Fehler oder einem -38 Fehler zurück. Beide scheinen ziemlich generische Fehler zu sein und sind daher nicht besonders verständlich.
Ich frage mich, ob es möglich ist, ein Video mit einem VideoView und nicht mit einer MediaPlayer-Instanz aus dem lokalen Speicher abzuspielen.
Die Schritte in meiner App sind folgende:
-
eine Datei von einer Remote-URL herunterladen
-
Die Datei im internen Speicher speichern (ich verwende die Konvention, um sicherzustellen, dass sie globale Leseberechtigungen hat, d.h.
openFileOutput(file_name, Context.MODE_WORLD_READABLE);
-
Die Mediendatei zu einem späteren Zeitpunkt von diesem Speicherort auslesen und in einem VideoView abspielen.
String filePath = "file://" + getFilesDir()+File.separator+file_name; Uri videoUri = Uri.parse(filePath); Log.d("Video Player", filePath); videoPlayer.setVideoURI(videoUri);
Ich habe auch andere Links in StackOverflow durchgesehen, die darauf hinweisen, dass ich einen CustomContentProvider implementieren muss, um diese Dateien lesen zu können. Gibt es einen direkten Weg, auf die Datei-URI zuzugreifen und sie dem VideoView zuzuweisen, ohne dass ich einen benutzerdefinierten Content-Provider erstellen und stattdessen eine MediaPlayer anstelle eines VideoView verwenden muss.
Weitere verwendete StackOverflow-Verweise