Youtube video autoplay inside UIWebview

11,703

Solution 1

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

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

Solution 2

I solved the problem by adding the follow code:

webview.mediaPlaybackRequiresUserAction=NO;
webview.allowsInlineMediaPlayback=YES;
Share:
11,703
msk
Author by

msk

Yo! Swift iOS | tvOS | Android | Automation

Updated on June 04, 2022

Comments

  • msk
    msk about 2 years

    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.
  • msk
    msk over 11 years
    This is old thread, but I remember setting mediaPlaybackRequiresUserAction = NO alone doesn't helped me. I updated my answer above and I am able to autoplay youtube video.
  • msk
    msk over 11 years
    oh may be yes because last I tried it on iOS5 where it did not worked. Though approach in my answer is working for iOS>=5.
  • dreampowder
    dreampowder about 11 years
    i've been bashing my head all day because of this line. Thanks!
  • shim
    shim almost 11 years
    How do you call that from a UIWebView?