我试图嵌入新的iframe版本的YouTube视频,并让它自动播放。

据我所知,没有办法通过修改URL的标志来做到这一点。有办法通过使用JavaScript和API来做到这一点吗?


当前回答

<iframe width="560" height="315" 
        src="https://www.youtube.com/embed/9IILMHo4RCQ?rel=0&amp;controls=0&amp;showinfo=0&amp;autoplay=1" 
        frameborder="0" allowfullscreen></iframe>

其他回答

1 -添加&enablejsapi=1到IFRAME SRC

jQuery func:

  $('iframe#your_video')[0].contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');

工作正常

是的,您可以根据谷歌的自动播放Iframe策略嵌入带有Iframe标签的自动播放YouTube视频

试试这个方法:

<iframe src="https://www.youtube.com/embed/video-id" frameborder="0" allow="autoplay; fullscreen"></iframe>

虽然这个过程一次只适用于一个视频,但要使用Iframe代码嵌入一组YouTube视频,您需要使用第三方工具,如Taggbox Widget,它与谷歌的API集成,允许用户以YouTube小部件的形式嵌入YouTube视频、使用频道和播放列表url的短片。

此外,您还可以使用生成的Iframe代码轻松地将响应式YouTube小部件嵌入到您的网站上。

<iframe src="https://widget.taggbox.com/unique-id" style="width:100%;height:600px;border:none;"></iframe>

为了让mjhm在2018年5月在Chrome 66上工作,我在iframe中添加了allow=autoplay,并在查询字符串中添加了enable_js=1:

<iframe allow=autoplay width="420px" height="345px" src="http://www.youtube.com/embed/oHg5SJYRHA0?autoplay=1&enable_js=1"></iframe>

在iframe src的末尾,添加&enablejsapi=1以允许在视频上使用js API

然后用jquery:

jQuery(document).ready(function( $ ) {
  $('.video-selector iframe')[0].contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');
});

这将在document.ready上自动播放视频

注意,你也可以在点击函数中使用这个来点击另一个元素来启动视频

更重要的是,你不能在移动设备上自动启动视频,所以用户总是要点击视频播放器本身来启动视频

编辑: 从文件上看,我不是百分之百确定。iframe已经准备好了,因为YouTube可能还在加载视频。我实际上是在点击函数中使用这个函数:

$('.video-container').on('click', function(){
  $('video-selector iframe')[0].contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}', '*');
  // add other code here to swap a custom image, etc
});

这适用于Chrome,但不适用于Firefox 3.6(警告:RickRoll视频):

<iframe width="420" height="345" src="http://www.youtube.com/embed/oHg5SJYRHA0?autoplay=1" frameborder="0" allowfullscreen></iframe>

iframe嵌入的JavaScript API是存在的,但是仍然作为一个实验特性发布。

更新:iframe API现在完全支持和“创建YT。播放器对象-示例2”展示了如何在JavaScript中设置“自动播放”。