【问题标题】:Youtube video autoplay inside UIWebviewUIWebview 内的 Youtube 视频自动播放
【发布时间】:2012-05-10 06:39:02
【问题描述】:

我在这个论坛中发现了很多关于嵌入 youtube 视频和自动播放的问题,但没有一个能解决我所有的疑问。

我找到了两种在 UIWebView 中嵌入 youtube 视频的方法

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];

如果我使用 (1) 方法并按照给定的方法 here 我的视频自动播放。想法是在 UIWebView 中找到按钮并向其发送修饰事件。

如果我使用 (2) 并遵循相同的方法,视频不会自动播放。

我认为建议使用 (2) 方法,因为 (1) 仅适用于 Flash 视频(对吗?)。

以任何方式(2)是可能的吗?这个link 说不。

谁能确认一下

  • 如果我是正确的,建议 (2)
  • 无法使用 (2) 自动播放。

【问题讨论】:

  • “如果我使用 (1) 方法并遵循此处给出的方法”.. 您正在链接到问题而不是该页面上的特定答案.. 有 10 个答案.. 你能请链接到您想到的具体答案?
  • 对不起@abbood 但没关系我链接的方法将不再适用于iOS > 5(或6)。使用 YouTube 的 JS API。
  • hum.. 我希望有一个更通用的解决方案.. 例如,我正在链接到 livestream flash 视频,我希望它在用户加载包含 webview 的 viewController 后立即播放使用直播视频代码.. 我想我正在寻找的是自动用户点击播放按钮.. 但是我不知道苹果是否会接受这样的代码
  • 这个post 打折使用javascript点击flash视频的可能性.. 太糟糕了!

标签: ios uiwebview youtube embed autoplay


【解决方案1】:

我通过添加以下代码解决了这个问题:

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

【讨论】:

    【解决方案2】:

    问。如果我是正确的,推荐(2)

    A.是 (2) 方法适用于不支持闪存的 i 设备。

    问。无法使用 (2) 进行自动播放。

    A.目前无法自动播放。

    更新:我可以使用 Youtube JS API 自动播放 youtube 视频,请参阅 https://developers.google.com/youtube/js_api_reference

    只需从 onPlayerReady 调用 playVideo

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

    【讨论】:

    • 如何从 UIWebView 调用它?
    【解决方案3】:

    通过发出以下命令可以自动播放:

    webView.mediaPlaybackRequiresUserAction=FALSE;
    

    【讨论】:

    • 这是旧线程,但我记得单独设置 mediaPlaybackRequiresUserAction = NO 对我没有帮助。我更新了上面的答案,我可以自动播放 youtube 视频。
    • 哦可能是的,因为上次我在 iOS5 上尝试过它,但它不起作用。虽然我的回答中的方法适用于 iOS>=5。
    • 因为这条线,我整天都在摇头。谢谢!
    【解决方案4】:

    您还可以使用 Saurabh Wadhwa Answer 中的这个技巧,在 UIWebView 完成下载后触发 endActionsForControlEvents:UIControlEventTouchUpInside

    【讨论】:

      猜你喜欢
      • 2013-03-21
      • 2012-03-19
      • 2011-05-05
      • 1970-01-01
      • 2017-10-17
      • 2013-12-19
      • 2011-03-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多