2012-04-30 21 views
5

Na tym forum znalazłem wiele pytań dotyczących osadzania filmów i autoodtwarzania w YouTube, ale żadna z nich nie rozwiała moich wątpliwości.Autoodtwarzanie wideo na Youtube wewnątrz UIWebview

Znalazłem dwa sposoby, aby umieścić film z YouTube w UIWebView

1)

NSString *youTubeHTMLTemplate = @"<html><head><style type=\"text/css\">body { background-color: transparent;color: white;}</style></head><body style=\"margin:0\"><embed id=\"yt\" src=\"%@\" type=\"application/x-shockwave-flash\" width=\"%0.0f\" height=\"%0.0f\"></embed></body></html>"; 
finalHtml = [NSString stringWithFormat:youTubeHTMLTemplate, fullYopuTubeUrl, htmlFrameWidth, htmlFrameHeight]; 

2)

NSString *youTubeHTMLTemplate = @"<html><body style=\"margin:0;padding:0;\"><iframe class=\"youtube-player\" type=\"text/html\" width=\"%f\" height=\"%f\" src=\"http://www.youtube.com/embed/%@\" frameborder=\"0\" allowfullscreen></iframe></body></html>"; 
finalHtml = [NSString stringWithFormat:youTubeHTMLTemplate, htmlFrameWidth, htmlFrameHeight, videoID]; 

Jeśli używam (1) metody i postępuj podejście podane here mój autoodtwarzania wideo. Pomysł polega na znalezieniu przycisku w UIWebView i wysłaniu do niego zdarzenia dotykowego.

Jeśli użyję (2) i zastosuję tę samą metodę, wideo nie będzie odtwarzane automatycznie.

Uważam, że podejście (2) jest zalecane, ponieważ (1) dotyczy tylko filmów Flash (prawda?).

Czy w jakikolwiek sposób (2) jest to możliwe? Ten link mówi NIE.

Czy ktoś może potwierdzić

  • Jeśli mam rację, że (2) zaleca
  • Autoodtwarzanie z (2) nie jest możliwe.
+0

"jeśli używam (1) metody i stosuję się do podanej tutaj metody" .. łączysz się z pytaniem, a nie konkretną odpowiedzią na tej stronie .. jest tam jak 10 odpowiedzi .. czy możesz podać link do konkretnego odpowiedź, którą miałeś na myśli? – abbood

+0

Przepraszam, że @abbood, ale nieważne podejście, które łączyłem, nie będzie działać na iOS> 5 (lub 6). Użyj interfejsów API JS serwisu YouTube. – msk

+0

hum .. miałem nadzieję na bardziej ogólne rozwiązanie ..na przykład łączę się z wideo flash na żywo i chciałbym, aby gra była odtwarzana natychmiast po załadowaniu przez użytkownika obiektu viewController zawierającego podgląd wideo za pomocą kodu wideo na żywo. Myślę, że to, czego szukam, to zautomatyzowanie kliknięcia użytkownika przycisk odtwarzania .. ale potem znowu nie donno, jeśli jabłko zaakceptuje taki kod – abbood

Odpowiedz

3

Q. Jeśli mam rację, że (2) zaleca

A. Tak (2) Metoda dotyczy urządzeń typu i, w których nie jest obsługiwana lampa błyskowa.

Q. Autoodtwarzanie z (2) nie jest możliwe.

A. Żadne autoodtwarzanie nie jest możliwe od teraz.

Aktualizacja: Jestem w stanie YouTube autoplay wideo za pomocą API Youtube JS zobaczyć https://developers.google.com/youtube/js_api_reference

Wystarczy zadzwonić playVideo z onPlayerReady

function onPlayerReady(event) { 
       event.target.playVideo();      
      } 
+0

Jak nazwać to z UIWebView? – shim

+0

@MSK To nie działa dla mnie, nie mogę automatycznie grać. –

-1

Można również użyć tej sztuczki z Saurabh WadhwaAnswer że pożaru endActionsForControlEvents:UIControlEventTouchUpInside po zakończeniu pobierania UIWebView

+1

Proszę uważnie przeczytać moje pytanie, już go wypróbowałem. – msk

0

autoodtwarzania jest możliwe poprzez emisję:

webView.mediaPlaybackRequiresUserAction=FALSE; 
+0

To jest stary wątek, ale pamiętam, że ustawienie mediaPlaybackRequiresUserAction = NO nie pomogło mi. Zaktualizowałem swoją odpowiedź powyżej i mogę automatycznie odtwarzać wideo z youtube. – msk

+0

To zadziałało tylko w iOS6 +. –

+0

oh może być tak, ponieważ ostatnio wypróbowałem to na iOS5, gdzie to nie zadziałało. Chociaż podejście w mojej odpowiedzi działa dla iOS> = 5. – msk

3

I rozwiązał problem, dodając następujący kod:

webview.mediaPlaybackRequiresUserAction=NO; 
webview.allowsInlineMediaPlayback=YES; 
Powiązane problemy