Aktualisierung: Alles unten ist immer noch korrekt, aber die official YouTube API for Android ist jetzt verfügbar.
Bei Weitem ist es am einfachsten, ein YouTube-Video auf Android zu spielen, indem einfach eine Absicht ausgelöst wird, um die native Android-App für YouTube zu starten. Natürlich wird dies fehlschlagen, wenn Sie nicht auf einem zertifizierten Google-Gerät sind, das nicht über die Google-Apps verfügt. (Das Kindle Fire ist wahrscheinlich das größte Beispiel für ein solches Gerät). Das Problem bei diesem Ansatz besteht darin, dass der Nutzer nach Abschluss des Videos nicht automatisch zu Ihrer App zurückkehrt. Sie müssen die Zurück-Taste drücken, und zu diesem Zeitpunkt haben Sie sie wahrscheinlich verloren.
Als zweite Option können Sie die MediaPlayer-API zum Abspielen von YouTube-Videos verwenden. Aber es gibt drei Vorbehalte bei diesem Ansatz:
1) Sie müssen einen Anruf an die GData-Webservice-API von YouTube senden und die ID des Videos weitergeben. Sie erhalten eine Menge Metadaten zurück, zusammen mit der RTSP-URL, die Sie an den MediaPlayer übergeben sollten, um einen H.264-kodierten Stream abzuspielen. Dies ist wahrscheinlich der Grund, warum der Versuch, den MediaPlayer zu verwenden, fehlgeschlagen ist. Sie haben wahrscheinlich nicht die richtige URL zum Streamen verwendet.
2) Der GData/MediaPlayer-Ansatz wird nur Inhalte mit niedriger Auflösung wiedergeben (176x144 oder ähnlich). Dies ist eine bewusste Entscheidung von YouTube, um den Diebstahl von Inhalten zu verhindern. Natürlich bietet dies keine sehr zufriedenstellende Erfahrung. Es gibt Backdoor-Hacks, um Streams mit höherer Auflösung zu erhalten, aber sie werden nicht auf allen Android-Versionen unterstützt und ihre Verwendung verstößt gegen die Nutzungsbedingungen von YouTube.
3) Die RTSP-Streams können durch einige interne Netzwerke/Firewalls blockiert werden, daher funktioniert dieser Ansatz möglicherweise nicht für alle Benutzer.
Die dritte Option besteht darin, ein WebView in Ihre Anwendung einzubetten. Es gibt zwei Ansätze, die Sie hier machen können:
1) Sie können ein Flash-Objekt einbetten und den Standard-Desktop-Flash-Player für YouTube ausführen. Sie können sogar die JavaScript-API verwenden, um den Player zu steuern und Ereignisse an die native Android-App weiterzuleiten. Dieser Ansatz funktioniert gut, aber leider wird Flash auf der Android-Plattform nicht mehr unterstützt und funktioniert nicht für Android 4.1 und höher.
2) Sie können ein <video>
-Tag einbetten, um YouTube über HTML5 abzuspielen. Die Unterstützung dafür variiert zwischen verschiedenen Versionen von Android. Es funktioniert gut auf Android 4.0 und später; frühere Versionen haben etwas fleckige HTML5 <video>
Unterstützung. Je nachdem, welche Versionen von Android Ihre Anwendung unterstützen muss, können Sie einen Hybridansatz verwenden, bei dem HTML5 auf Android 4.x oder höher und Flash für alle früheren Versionen von Android eingebettet wird.
In StackOverflow gibt es mehrere Threads über HTML5 zum Abspielen von YouTube-Videos. keiner von ihnen beschreibt wirklich den gesamten Prozess, dem Sie an einem Ort folgen müssen. Hier Links zu einigen von ihnen:
Android - How to play Youtube video in WebView?
How to embed a YouTube clip in a WebView on Android
Play Youtube HTML5 embedded Video in Android WebView
All dies wird erhalten dramatisch leichter in den nächsten Wochen/Monaten zu kommen; Auf der Google I/O 2012 wurde eine neue YouTube-API für Android vorgestellt/demotiert, die das direkte Einbetten von YouTube-Inhalten in Ihre Anwendung mit voller Unterstützung zurück auf Android 2.2 (etwa 95% der Android-Nutzerbasis zum Zeitpunkt des Schreibens) unterstützt. Es kann nicht schnell genug ankommen.
Dies könnte helfen http://www.gadgetsaint.com/android/play-youtube-android-youtube-player-api/ – ASP