Abspielen von youtube-Videos in Android-app
In meine Android-app würde ich gerne die Benutzer Tippen Sie auf ein Bild einmal, ein youtube-video automatisch abgespielt und wenn das video fertig ist wird der Benutzer sofort wieder die app. Was ist der beste Weg, dies zu tun in Android?
Ich versucht, mit Hilfe von intents. Dies funktioniert in diesem video kommt das, was ich denke, ist ein youtube-web-Seite. Allerdings spielt das video erfordert ein anderes Tippen. Ich würde gerne vermeiden, wenn möglich.
Habe ich versucht, das ganze MediaPlayer, prepareAsync, setOnPreparedListener und nie zum laufen bekommen. Aus irgendeinem Grund onPrepared nie genannt wurde. Keine exceptions geworfen wurden. Ich bin mit dem emulator zu testen, und ich bin neu in Android, also bin ich nicht sicher, ob das Verhalten wird anders sein, auf physikalische Geräte.
Habe ich diese arbeiten auch auf iOS, indem man kreativ mit webviews. Ich bin der Hoffnung, es ist einfacher auf Android. Die docs sicher klingt es gerade nach vorne.
Prost!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update: Alles, was unten ist noch richtig, aber die die offizielle YouTube-API für Android ist jetzt verfügbar.
Weitem die einfachste Art zu spielen, ein YouTube-video auf Android ist einfach das Feuer der Absicht, starten Sie die native Android-YouTube-app. Natürlich, dies wird fehlschlagen, wenn Sie nicht auf einen zertifizierten Google-Gerät, das nicht über die Ergänzung der Google-apps. (Der Kindle Fire ist wohl das größte Beispiel für ein solches Gerät). Das problem bei diesem Ansatz ist, dass der Benutzer nicht automatisch aus dem wind zurück in Ihre app, wenn das video fertig; Sie müssen die Zurück-Taste drücken, und an diesem Punkt werden Sie wahrscheinlich haben Sie verloren.
Als zweite option verwenden, können Sie die MediaPlayer-API zu spielen YouTube-videos. Es gibt aber drei Einschränkungen, die mit diesem Ansatz:
1) Sie brauchen, um einen Anruf zu tätigen, um YouTube GData webservice-API, übergeben Sie die ID des Videos. Sie erhalten wieder eine Tonne von Metadaten, die zusammen mit ihm die RTSP-URL, die Sie übergeben sollte an MediaPlayer zum Abspielen eines H. 264-codierten stream. Dies ist wahrscheinlich der Grund, warum Ihr Versuch, MediaPlayer versagt, du wahrscheinlich nicht die richtige URL zum stream.
2) Die GData - /MediaPlayer Ansatz wird nur wiedergegeben low-resolution-Inhalte (176x144 oder ähnliches). Dies ist eine bewusste Entscheidung auf Seiten von YouTube, um zu verhindern, Diebstahl von Inhalten. Natürlich nicht, eine sehr befriedigende Erfahrung. Es gibt back-door-hacks zu erhalten, höhere Auflösung, Ströme, Sie werden aber nicht unterstützt auf allen Versionen von Android und mit Ihnen ist ein Verstoß gegen die YouTube-Nutzungsbedingungen.
3) Die RTSP-streams können blockiert werden, indem einige interne Netzwerke/firewalls so, dass dieser Ansatz möglicherweise nicht für alle Benutzer.
Die Dritte Möglichkeit ist die Einbettung eines WebView in Ihrer Anwendung. Es gibt zwei Ansätze, die Sie ergreifen können, hier:
1) binden Sie ein Flash-Objekt, und führen Sie die standard-desktop-Flash-player für YouTube. Sie können auch die Javascript-API, um den player Steuern, und relay-Ereignisse zurück, um die native Android-app. Dieser Ansatz funktioniert gut, aber leider ist Flash als veraltet, auf der Android-Plattform, und wird nicht für Android 4.1 und höher.
2) Sie können einbetten
<video>
tag zu spielen Sie YouTube über HTML5. Unterstützung für diese variiert zwischen verschiedenen Versionen von Android. Es funktioniert gut auf Android 4.0 und höher; frühere Versionen haben etwas fleckig HTML5<video>
unterstützen. Also, je nachdem, welche Versionen von Android muss die Anwendung unterstützen, können Sie einen " hybrid-Ansatz, der die Einbettung von HTML5 auf Android 4.x oder höher und Flash für alle früheren Versionen von Android.Gibt es mehrere threads hier auf StackOverflow über die Verwendung von HTML5-spielen, YouTube-video; keiner von Ihnen wirklich beschreiben, den gesamten Prozess Sie Folgen müssen, an einem Ort. Hier die links zu ein paar von Ihnen:
Android - How to play Youtube video in WebView?
Wie Betten Sie ein YouTube-clip in eine WebView auf Android
Spielen Sie Youtube-HTML5-eingebettete Videos in Android WebView
All dies wird dramatisch einfacher in den nächsten Wochen/Monaten kommen wird; auf der Google I/O 2012 vorgestellt/vorgeführt eine neue YouTube-API für Android, unterstützt die direkte Einbettung von YouTube-Inhalt in Ihrer Anwendung mit voller Unterstützung zurück zu Android 2.2 (über 95% der Android-userbase als dies geschrieben wurde). Es kann nicht ankommen schnell genug.
get_video
, das ist jetzt nicht unterstützt. Eine neue version des Codes (zu finden auf Google Code unter code.google.com/p/android-youtube-player) verwendetget_video_info
Weg mit dem format-trick, aber ich befürchte, dass es auch Unterstützung für diejenigen, die URLs könnten gelöscht werden, ohne Vorherige Ankündigung. Während der Wartezeit für die einfache API bereitgestellt werden, jedoch, wenn der code funktioniert, könnte eine schöne Ergänzung zwischen Flash player und GData/VideoView
/MediaPlayer
die Qualität der letzteren wohl nur ein wenig zu niedrig für meine Anforderungen.