Stworzyłem aplikację, w której można pobierać filmy z YouTube'a na Androida. Teraz chcę, żebyś odtwarzał wideo w natywnej aplikacji YouTube, abyś mógł go również pobrać. Aby to zrobić, muszę znać zamiar, który generuje natywna aplikacja YouTube, aby móc odtwarzać aplikację YouTube.
Mógłbym to łatwo zrobić, gdybym miał program YouTube na moim emulatorze, więc moje pierwsze pytanie brzmi:
1. Czy mogę pobrać aplikację YouTube dla mojego emulatora, czy ...
2. Jaka jest intencja używana, gdy użytkownik wybiera wideo do odtwarzania.
android
youtube
android-intent
emulation
Isaac Waller
źródło
źródło
Odpowiedzi:
A co powiesz na to:
Uwaga: uważaj, gdy używasz tej metody, YouTube może zawiesić Twój kanał z powodu spamu, zdarzyło się to dwa razy ze mną
źródło
To zadziała na urządzeniu, ale nie na emulatorze zgodnie z odpowiedzią Lemmy'ego .
źródło
Oto jak rozwiązałem ten problem:
Teraz, gdy przeprowadziłem więcej badań, wygląda na to, że potrzebowałem tylko „vnd.youtube:VIDEO_ID” zamiast dwóch ukośników po dwukropku („:” vs. „: //”):
http://it-ride.blogspot.com/2010/04/android-youtube-intent.html
Wypróbowałem większość sugestii tutaj i nie działały one zbyt dobrze ze wszystkimi rzekomymi metodami „bezpośrednimi”, które wywoływały wyjątki. Zakładam, że przy mojej metodzie, jeśli aplikacja YouTube NIE jest zainstalowana, system operacyjny ma domyślną pozycję awaryjną czegoś innego niż awaria aplikacji. Aplikacja i tak działa tylko na urządzeniach z aplikacją YouTube, więc nie powinno to stanowić problemu.
źródło
Użyj mojego kodu .. Mogę odtwarzać wideo z YouTube za pomocą tego kodu ... wystarczy podać identyfikator wideo z YouTube w zmiennej „videoId” ....
źródło
Gdzie
videoId
jest identyfikator filmu z YouTube, który ma zostać odtworzony. Ten kod działa dobrze na Motorola Milestone .Ale w zasadzie to, co możemy zrobić, to sprawdzić, jakie działanie jest ładowane po uruchomieniu aplikacji Youtube i odpowiednio zastąpić pakiet PackageName i className.
źródło
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?
Prosimy o rozwiązanie tego problemu.Youtube (i aplikacja Market) mają być używane tylko ze specjalnymi ROMami, które Google wydał dla G1 i G2. Nie możesz więc niestety uruchomić ich w OpenSource-ROM, jak ten używany w emulatorze. Cóż, może możesz, ale nie w oficjalnie wspierany sposób.
źródło
EDYCJA: Poniższa implementacja okazała się mieć problemy na co najmniej niektórych urządzeniach HTC (uległa awarii). Z tego powodu nie używam setclassname i trzymam się menu wyboru akcji. Zdecydowanie odradzam używanie mojej starej implementacji.
Poniżej znajduje się stara implementacja:
Gdzie Utility jest moją osobistą klasą użytkową z następującą metodą:
Najpierw sprawdzam, czy youtube jest zainstalowany, jeśli jest zainstalowany, mówię androidowi, który pakiet wolę otworzyć.
źródło
Znalazłem to:
źródło
Odpowiadając na stare pytanie, żeby poinformować was, że pakiet się zmienił, oto aktualizacja
Działa to bardzo dobrze, ale kiedy dzwonisz do zwykłej intencji z ACTION_VIEW z prawidłowym adresem URL YouTube, użytkownik i tak otrzymuje selektor aktywności.
źródło
Najbezpieczniejszym sposobem uruchamiania filmów w innej aplikacji jest próba rozwiązania pakietu, innymi słowy, sprawdzenie, czy aplikacja jest zainstalowana na urządzeniu. Więc jeśli chcesz uruchomić wideo na youtube, zrób coś takiego:
źródło
Youtube ma teraz api odtwarzacza, powinieneś spróbować.
https://developers.google.com/youtube/android/player/
źródło
źródło
Możesz także po prostu pobrać plik
WebViewClient
Działało dobrze w mojej aplikacji.
źródło
Spróbuj tego:
źródło
To zadziała, jeśli zainstalowana jest aplikacja YouTube. Jeśli nie, pojawi się selektor, aby wybrać inną aplikację:
źródło
Spróbuj tego,
źródło
Ta funkcja działa dobrze dla mnie ... po prostu podaj ciąg adresu URL w funkcji:
źródło
Możesz użyć interfejsu API odtwarzacza YouTube Android, aby odtworzyć wideo, jeśli zainstalowana jest aplikacja YouTube, w przeciwnym razie po prostu poproś użytkownika o wybranie jednej z dostępnych przeglądarek internetowych.
źródło