Ich versuche, ein Video im Android-Emulator abzuspielen Ich habe das Video sowohl in meinem Assets-Ordner als auch im Raw-Ordner. Aber nachdem ich einige Nachforschungen angestellt habe, kann ich das Video immer noch nicht in meinem Emulator abspielen Ich arbeite mit Android 2.1 Mein Videoformat ist mp4, also denke ich nicht, dass das ein Problem sein sollte Könnte mir jemand einen Beispielcode geben, damit ich ein bisschen mehr verstehen kann?
Das Problem ist, dass die VideoView, die ich brauche, um das Video anzuzeigen, nur einen URI oder einen Dateipfad zum Verweis auf das Video akzeptiert.
Wenn ich das Video im Raw- oder Assets-Ordner speichere, kann ich nur einen Input-Stream oder einen Dateideskriptor erhalten und es scheint, dass nichts davon zur Initialisierung der VideoView verwendet werden kann.
Update
Ich habe mir das MediaPlayer-Beispiel genauer angesehen und versucht, einen MediaPlayer mit einem FileDescriptor zu den Assets-Dateien zu starten, wie im folgenden Code:
SurfaceView videoView = (SurfaceView) findViewById(gettingStarted)
SurfaceHolder holder = videoView.getHolder();
holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
final MediaPlayer player = new MediaPlayer();
player.setDisplay(holder);
player.setDataSource(getAssets().openFd(fileName).getFileDescriptor());
player.prepareAsync();
player.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mp) {
mp.start();
}
});
Jetzt erhalte ich die folgende Ausnahme:
java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
Es scheint keine andere Möglichkeit zu geben, als die Datei beim Start auf die SD-Karte zu kopieren, und das scheint eine Verschwendung von Zeit und Speicher zu sein.
0 Stimmen
Ich denke, das Problem ist, dass mp4 ein komprimiertes Format ist. Prüfen Sie meine Antwort für Details
0 Stimmen
Hier die Erklärung zum 'rohen' Floder stackoverflow.com/questions/11356601/
1 Stimmen
Wir schrieben das Jahr 2020 und obwohl ich Android Studio 3.6 und das Betriebssystem Android 10 benutzte, gab es in der folgenden Videoansicht zwar Ton, aber das Bild war schwarz. Schließlich funktionierten die Codes dieses Freundes und ich kann nicht erklären, wie glücklich ich war. Keiner von denen, die als Lösung unten geschrieben wurden, funktionierte bei mir zum ersten Mal. Zum Glück bin ich froh, dass ich mein Problem endlich gelöst habe. Ich danke Ihnen: D