Ich habe eine App erstellt, in der Sie YouTube-Videos für Android herunterladen können. Jetzt möchte ich, dass Sie ein Video, das Sie in der nativen YouTube-App abspielen, auch herunterladen können. Dazu muss ich die Absicht kennen, die die native YouTube-App ausgibt, um die YouTube-App abspielen zu können.
Ich könnte dies einfach tun, wenn ich das YouTube-Programm auf meinem Emulator hätte. Meine erste Frage lautet also:
1. Kann ich die YouTube-App für meinen Emulator herunterladen oder ...
2. Welche Absicht wird verwendet, wenn der Benutzer ein Video auswählt zur Wiedergabe.
android
youtube
android-intent
emulation
Isaac Waller
quelle
quelle
Antworten:
Und wie wäre es damit:
Hinweis: Wenn Sie diese Methode verwenden, kann YouTube Ihren Kanal aufgrund von Spam sperren. Dies ist bei mir zweimal passiert
quelle
Dies funktioniert auf einem Gerät, jedoch nicht auf dem Emulator gemäß Lemmys Antwort .
quelle
So habe ich dieses Problem gelöst:
Nachdem ich weitere Nachforschungen angestellt habe, brauchte ich anscheinend nur 'vnd.youtube:VIDEO_ID' anstelle von zwei Schrägstrichen nach dem Doppelpunkt (':' vs. ': //'):
http://it-ride.blogspot.com/2010/04/android-youtube-intent.html
Ich habe die meisten Vorschläge hier ausprobiert und sie funktionierten nicht wirklich gut mit allen angeblichen "direkten" Methoden, die Ausnahmen auslösen. Ich würde davon ausgehen, dass bei meiner Methode, wenn die YouTube-App NICHT installiert ist, das Betriebssystem eine Standard-Fallback-Position hat, die nicht zum Absturz der App führt. Die App läuft theoretisch sowieso nur auf Geräten mit der YouTube-App, daher sollte dies kein Problem sein.
quelle
Verwenden Sie meinen Code. Mit diesem Code kann ich YouTube-Videos abspielen. Sie müssen lediglich die YouTube-Video-ID in der Variablen "videoId" angeben.
quelle
Wo
videoId
ist die Video-ID des YouTube-Videos, das abgespielt werden muss? Dieser Code funktioniert einwandfrei unter Motorola Milestone .Grundsätzlich können wir jedoch überprüfen, welche Aktivität beim Starten der Youtube-App geladen wird, und den Paketnamen und den Klassennamen entsprechend ersetzen.
quelle
ERROR/AndroidRuntime(1519): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.google.android.youtube/com.google.android.youtube.PlayerActivity}; have you declared this activity in your AndroidManifest.xml?
Bitte lösen Sie dies.Das Youtube (und die Market-Anwendung) dürfen nur mit speziellen ROMs verwendet werden, die Google für das G1 und das G2 veröffentlicht hat. Sie können sie also leider nicht in einem OpenSource-ROM ausführen, wie es im Emulator verwendet wird. Nun, vielleicht können Sie, aber nicht auf offiziell unterstützte Weise.
quelle
BEARBEITEN: Die folgende Implementierung hatte Probleme mit mindestens einigen HTC-Geräten (sie stürzten ab). Aus diesem Grund verwende ich nicht setclassname und halte mich an das Aktionsauswahlmenü. Ich rate dringend davon ab, meine alte Implementierung zu verwenden.
Es folgt die alte Implementierung:
Wobei Utility meine persönliche Utility-Klasse mit folgender Methode ist:
Zuerst überprüfe ich, ob YouTube installiert ist. Wenn es installiert ist, sage ich Android, welches Paket ich lieber meine Absicht öffnen möchte.
quelle
Fand es:
quelle
Auf die alte Frage zu antworten, nur um euch zu informieren, dass sich das Paket geändert hat, hier ist das Update
Dies funktioniert sehr gut, aber wenn Sie normale Absicht mit ACTION_VIEW mit gültiger YouTube-URL aufrufen, erhält der Benutzer trotzdem die Aktivitätsauswahl.
quelle
Der sicherste Weg, Videos in einer anderen App auszuführen, besteht darin, zunächst zu versuchen, das Paket aufzulösen. Mit anderen Worten, überprüfen Sie, ob die App auf dem Gerät installiert ist. Wenn du also ein Video auf YouTube laufen lassen willst, machst du ungefähr so:
quelle
Youtube hat jetzt eine Player-API. Das solltest du versuchen.
https://developers.google.com/youtube/android/player/
quelle
quelle
Sie können auch einfach die greifen
WebViewClient
Hat in meiner App gut funktioniert.
quelle
Versuche dies:
quelle
Dies funktioniert, wenn die YouTube-App installiert ist. Wenn nicht, wird eine Auswahl angezeigt, um eine andere Anwendung auszuwählen:
quelle
Versuche dies,
quelle
Diese Funktion funktioniert gut für mich ... übergeben Sie einfach die URL-Zeichenfolge in der Funktion:
quelle
Sie können die Youtube Android Player-API verwenden, um das Video abzuspielen, wenn die Youtube-App installiert ist. Andernfalls fordern Sie den Benutzer einfach auf, aus den verfügbaren Webbrowsern auszuwählen.
quelle