Youtube video autoplay inside UIWebview

msk picture msk · Apr 30, 2012 · Viewed 11.6k times · Source

I found many questions in this forum regarding embedding youtube video and autoplay, but none of them cleared all my doubts.

I found two methods to embed youtube video in 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];

If I use (1) method and follow the approach given here my video autoplays. Idea is to find button in UIWebView and send touch up event to it.

If I use (2) and follow the same approach video does not autoplay.

I think that the (2) approach is recommended as the (1) is for Flash Videos only (Right?).

Is by any means (2) is possible ? This link says NO.

Can anyone confirm

  • If I am correct that (2) is recommended
  • Autoplay with (2) is not possible.

Answer

HonestyGong picture HonestyGong · Apr 14, 2014

I solved the problem by adding the follow code:

webview.mediaPlaybackRequiresUserAction=NO;
webview.allowsInlineMediaPlayback=YES;