我想嵌入YouTube视频的新版本iframe,并让它自动播放。
据我所知,没有通过修改URL添加标志的方法来实现此目的。是否可以使用JavaScript和API来实现自动播放?
我想嵌入YouTube视频的新版本iframe,并让它自动播放。
据我所知,没有通过修改URL添加标志的方法来实现此目的。是否可以使用JavaScript和API来实现自动播放?
这在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.Player对象-示例2”展示了如何在JavaScript中设置“autoplay”属性。
onYouTubeIframeAPIReady()
没有被触发。有人有解决方案吗? - Someone Somewhereautoplay=1
作为查询参数添加,还需要将allow='autoplay'
作为iframe的属性添加。因此,您需要像这样做:<iframe src="https://www.youtube.com/embed/VIDEO_ID?autoplay=1" allow='autoplay'></iframe>
2018年8月,我没有找到有关iframe实现的有效示例。其他问题都与仅适用于Chrome的问题有关,这有点暴露了它。
您需要通过mute=1
来静音声音,以便在Chrome上自动播放。使用autoplay=1
作为参数,FF和IE似乎可以正常工作。
<iframe src="//www.youtube.com/embed/{{YOUTUBE-ID}}?autoplay=1&mute=1" name="youtube embed" allow="autoplay; encrypted-media" allowfullscreen></iframe>
YouTube嵌入代码默认情况下自动播放是关闭的。只需在“src”属性末尾添加autoplay=1
即可开启自动播放。例如:
<iframe src="http://www.youtube.com/embed/xzvScRnF6MU?autoplay=1" width="960" height="447" frameborder="0" allowfullscreen></iframe>
关于如何嵌入YouTube视频并实现自动播放以及在视频末尾不显示推荐视频的2014年iframe嵌入演示。
rel=0&autoplay
以下是示例:
<iframe width="640" height="360" src="//www.youtube.com/embed/JWgp7Ny3bOo?rel=0&autoplay=1" frameborder="0" allowfullscreen></iframe>
&enablejsapi=1
,以允许在视频上使用js API。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
});
setTimeout
对我有用。 - tyler.frankenstein对于不知道多个查询提示的人(过去的我和未来的我)
如果您只使用链接进行单个查询,那么?autoplay=1
就可以像mjhm's answer所展示的那样工作
<iframe src="https://www.youtube.com/embed/oHg5SJYRHA0?autoplay=1"></iframe>
?
开始,而其余的查询以 &
开始。<iframe src="https://www.youtube.com/embed/oHg5SJYRHA0?rel=0&autoplay=1"></iframe>
并且这个可行
<iframe src="https://www.youtube.com/embed/oHg5SJYRHA0?autoplay=1&rel=0"></iframe>
<iframe src="https://www.youtube.com/embed/oHg5SJYRHA0?rel=0?autoplay=1"></iframe>
<iframe src="https://www.youtube.com/embed/oHg5SJYRHA0&autoplay=1&rel=0"></iframe>
示例比较
https://jsfiddle.net/Hastig/p4dpo5y4/
更多信息
阅读下面Local的回复,了解有关使用多个查询字符串的更多信息
?rel=0
。如果你将其删除,它就会起作用。如果你想了解更多关于查询字符串语法的信息,请点击这里。?rel=0?autoplay=1
应该改为 ?autoplay=1
或者 ?rel=0&autoplay=1
。 - jaggedsofthttp://www.youtube.com/embed/oHg5SJYRHA0&autoplay=1
肯定行不通,但是https://www.youtube.com/embed/oHg5SJYRHA0?autoplay=1
应该可以。 - jaggedsoftautoplay
。< / p>
为了让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>
如果有人正在寻找完美的解决方案,那么自动播放*是关键所在,但这并没有在任何地方提到。
*autoplay可以是一种功能或属性,具体涵义需要根据上下文来确定。 <iframe allow="autoplay *; fullscreen *" allowfullscreen="true"
src="https://example.com">
</iframe>
& 如果您想完全懒加载YouTube视频,请使用以下方法-
<iframe
srcdoc="<style>*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}</style><a href=https://www.youtube.com/embed/unICbsPGFIA?autoplay=1><img src=https://img.youtube.com/vi/zEkgWzi5T-Y/hqdefault.jpg><span>▶</span></a>"
src="https://www.youtube.com/embed/unICbsPGFIA?autoplay=1&loop=1&playlist=zEkgWzi5T-Y"
frameborder="0"
allow="accelerometer; autoplay *; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowfullscreen
></iframe>