Odtwarzanie wideo z youtube w aplikacji na Androida

W mojej aplikacji na Androida chciałbym, aby użytkownik raz dotknął obrazu, automatycznie odtworzył film z youtube, a gdy film zostanie ukończony, użytkownik natychmiast wraca do aplikacji. Jaki jest najlepszy sposób, aby to zrobić w Androidzie?

Próbowałem użyć intencji. To działa w tym, że film pojawia się na tym, co myślę, że jest to strona youtube. Jednak odtwarzanie wideo wymaga kolejnego stuknięcia. Chciałbym tego uniknąć, jeśli to możliwe.

Próbowałem całego MediaPlayer, prepareAsync, setOnPreparedListener i nigdy nie dostał go do pracy. Z jakiegoś powodu onPrepared nigdy nie został wezwany. Nie było WYJĄTKÓW. Używam emulatora do testowania i jestem nowy w Androidzie, więc nie jestem pewien, czy zachowanie będzie inne na urządzeniach fizycznych.

Mam to działa dobrze na iOS, stając się kreatywnym z webviews. Mam nadzieję, że na Androidzie będzie łatwiej. dokumenty z pewnością sprawiają, że brzmi prosto do przodu.

Zdrówko!
Author: SundayMonday, 2012-07-19

1 answers

Aktualizacja: wszystko poniżej jest nadal poprawne, ale oficjalne API YouTube dla Androida jest już dostępne.

Zdecydowanie najprostszym sposobem, aby odtworzyć wideo YouTube na Androida jest po prostu odpalić zamiar uruchomienia natywnej aplikacji YouTube na Androida. Oczywiście to się nie powiedzie, jeśli nie jesteś na certyfikowanym urządzeniu Google, które nie ma zestawu aplikacji Google. (Kindle Fire jest chyba największym przykładem takiego urządzenia). Problem z tym podejściem polega na tym, że użytkownik nie skończy automatycznie z powrotem w aplikacji, gdy film się skończy; muszą nacisnąć przycisk Wstecz, a w tym momencie prawdopodobnie je zgubiłeś.

Jako druga opcja, można użyć MediaPlayer API do odtwarzania filmów z YouTube. Ale są trzy zastrzeżenia z tym podejściem:

1) musisz wykonać połączenie z Youtube GData WebService API, przekazując mu ID filmu. Otrzymasz mnóstwo metadanych, wraz z nim adres URL RTSP, który powinieneś przekazać MediaPlayer do odtwarzania strumienia kodowanego H. 264. Prawdopodobnie jest to powód, dla którego próba użycia MediaPlayer nie powiodła się; prawdopodobnie nie używałeś poprawnego adresu URL do przesyłania strumieniowego.

2) podejście GData/MediaPlayer będzie odtwarzać tylko treści o niskiej rozdzielczości (176x144 lub podobne). Jest to celowa decyzja ze strony YouTube, aby zapobiec kradzieży treści. Oczywiście nie zapewnia to zbyt satysfakcjonującego doświadczenia. Istnieją back-door hacki, aby uzyskać strumienie o wyższej rozdzielczości, ale nie są one obsługiwane we wszystkich wersjach Androida i korzystanie z nich jest naruszeniem warunków korzystania z serwisu YouTube.

3) strumienie RTSP mogą być blokowane przez niektóre sieci wewnętrzne / zapory, więc takie podejście może nie działać dla wszystkich użytkowników.

Trzecią opcją jest osadzenie widoku sieci Web w aplikacji. Tutaj można wybrać dwa podejścia:

1) możesz osadzić obiekt Flash i uruchomić standardowy desktop Flash player dla YouTube. Możesz nawet użyć Javascript API, aby steruj odtwarzaczem i przekazuj zdarzenia z powrotem do natywnej aplikacji na Androida. To podejście działa dobrze, ale niestety Flash jest przestarzały na platformie Android i nie będzie działać dla Androida 4.1 i nowszych.

2) możesz osadzić tag <video>, aby odtwarzać YouTube przez HTML5. Wsparcie dla tego zależy od różnych wersji Androida. Działa dobrze na Androidzie 4.0 i nowszych; wcześniejsze wersje mają nieco spotty HTML5 <video> wsparcie. Tak więc, w zależności od tego, jakie wersje Androida Twoja aplikacja musi obsługiwać, możesz zastosować hybrydowe podejście do osadzania HTML5 na Androidzie 4.x lub nowszy i Flash dla wszystkich wcześniejszych wersji Androida.

Istnieje kilka wątków na temat korzystania z HTML5 do odtwarzania filmów z YouTube; żaden z nich nie opisuje całego procesu, który musisz wykonać w jednym miejscu. Oto linki do kilku z nich:

Android - jak odtwarzać wideo z Youtube w WebView?

Jak osadzić klip z YouTube w widoku sieci Web na Android

Odtwórz osadzone wideo Youtube HTML5 w Android WebView

Wszystko to stanie się znacznie łatwiejsze w nadchodzących tygodniach / miesiącach; w Google I / O 2012 zaprezentowali / zaprezentowali nowy interfejs API YouTube dla Androida, który będzie obsługiwał bezpośrednie osadzanie treści z YouTube w Twojej aplikacji, z pełnym wsparciem z powrotem do Androida 2.2(około 95% bazy użytkowników Androida w tym piśmie). Nie może dotrzeć wystarczająco szybko.

 29
Author: mportuesisf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:46:50