Sorry, dieses Video kann nicht wiedergegeben werden - Streaming von MP4 zu Android

8

Ich habe überall nach einer Lösung dafür gesucht (einschließlich SO), habe aber noch keine Lösung gefunden.

Ich brauche eine einfache Videowiedergabe in meiner App. Es ist ein bisschen weniger einfach als ein einfaches Fenster mit einem Video. Vereinfacht gesagt, habe ich zwei Layouts auf meinem Bildschirm, von denen eines etwas anderes enthält und das andere das Videofenster. Es gibt auch einen Knopf, um zwischen den beiden zu wechseln. Das alles funktioniert gut, nachdem ich herausgefunden habe, dass die Videowiedergabe nicht in einer Ansicht vorhanden sein kann, in der die Sichtbarkeit 'weg' ist - daher füge ich sie bei Bedarf dem Container-Layout hinzu oder entferne es.

Allerdings habe ich das Problem mit der eigentlichen Videowiedergabe. Wenn ich versuche, es zu aktivieren, bekomme ich den gefürchteten Fehler Sorry, this video cannot be played. Eine der Fragen hier auf SO diskutiert Videoformate ( Android - Kann ich keine Videos abspielen (mp4 / mov / 3gp / etc.)? ) - aber ich habe schon das scheinbar richtige Format mit 320px Breite und allem anderen. Eine der Antworten auf diesen Thread erwähnt, dass Videos von hier "definitiv funktionieren". Ich habe versucht, ein paar von dort - aber ich habe eine andere gemeinsame Bestie: Sorry, this video is not valid for streaming to this device.

Bitte beachten Sie, dass ich an einem tatsächlichen Gerät teste, da die Videowiedergabe im Emulator nicht funktioniert. Beachten Sie auch, dass die Lösung unter Android 1.6 und höher (Client-Anforderung) funktionieren muss. Das Gerät, auf dem ich teste, ist LG GT540 Optimus mit Android 2.1 (zur Zeit habe ich keine anderen Geräte verfügbar).

Nach dem, was ich herausgefunden habe, wenn ich qt-faststart in den Videos nicht verwende, erhalte ich den Fehler Sorry, this video is not valid for streaming to this device. Wenn ich qt-faststart verwende, dann bekomme ich Sorry, this video cannot be played.

Hier ist mein Code für die Wiedergabe:

%Vor%

Nun soll das Video, das ich abspielen möchte, progressiv von HTTP heruntergeladen werden: object.getVideoURL() gibt Ссылка

Kann mir bitte jemand helfen, das herauszufinden? Dies ist das letzte, was ich tun muss, bevor die ganze App fertig ist.

Vielen Dank!

Bearbeiten: Ich habe versucht, den MediaPlayer zu verwenden - aber es wurden noch schlechtere Ergebnisse erzielt als mit VideoView, also bin ich zu VideoView zurückgekehrt. Jetzt, im Simulator, erhalte ich einen schwarzen Bildschirm mit Steuerelementen, die darüber schweben und der Sound des Videos wird gut wiedergegeben. Auch der Fortschritt wird angepasst, während die Wiedergabe fortgesetzt wird. Auf meinem tatsächlichen Gerät erhalte ich immer noch Sorry, this video cannot be played. error

    
Aleks G 04.11.2011, 16:24
quelle

2 Antworten

6

Es stellte sich heraus, dass das Problem mit dem Format der Videos zu tun hatte (speziell mit den Parametern, die ich mit ffmpeg benutzt habe, um die MP4-Videos zu erstellen). Ich habe sichergestellt, dass die Videos baseline H.264 sind - und alles hat gut funktioniert. Weitere Informationen finden Sie Diese Frage .

    
Aleks G 08.11.2011, 14:14
quelle
1

Vielleicht müssen Sie die Art der Einrichtung Ihres MediaPlayers ändern. Ich habe gerade die URL Ihres Beispielvideos in das Apidemie-Beispiel eingefügt und es funktionierte gut.

Siehe: Ссылка

Ich hoffe, das hilft.

    
Damian 04.11.2011 16:47
quelle

Tags und Links