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.
Q. If I am correct that (2) is recommended
A. Yes (2) method is for i-devices where no flash support.
Q. Autoplay with (2) is not possible.
A. No autoplay is not possible as of now.
Update: I am able to autoplay youtube video by using Youtube JS APIs see https://developers.google.com/youtube/js_api_reference
Just call playVideo from onPlayerReady
You can also use this trick from the Saurabh Wadhwa Answer that fire the
endActionsForControlEvents:UIControlEventTouchUpInside
after UIWebView finished downloadI solved the problem by adding the follow code:
Autoplay is possible by issuing: