在 iFrame 中暂停 YouTube 视频

Posted

技术标签:

【中文标题】在 iFrame 中暂停 YouTube 视频【英文标题】:Pause YouTube video within iFrame 【发布时间】:2017-04-11 14:22:57 【问题描述】:

点击 关闭按钮 后,我在后台播放了一个 YouTube 视频...这是我无法使用的 jQuery:

$('#close1').on('click', function() 
    //  $('#video1').stopVideo();
    $('#video1')[0]
        .contentWindow
        .postMessage('"event":"command","func":"' + 'stopVideo' + '","args":""', '*');    

);

这是一个例子:http://georgehowell.biz/unsw1/index.html

【问题讨论】:

【参考方案1】:

我发现这个有趣的线程与这个问题有关,它有很多解决方案的建议,也许其中任何一个都对你有用:

Stop embedded youtube iframe?

【讨论】:

感谢该链接..此问题的许多变体。 jax297 解决方案在这种情况下几乎可以工作 - 奇怪的是,视频在关闭后几秒钟内又重新开始。我正在寻找一种在单击“关闭”按钮时将“?autoplay=1”从 YouTube 上移除的方法 很高兴看到它对您有所帮助,祝您工作顺利:)【参考方案2】:

不使用 YouTube 的 iframe_API;你可以简单地使用:

iframe.contentWindow.postMessage(message, origin);

将消息发送到 iframeWindow(从 parentWindow)。这些消息可以包括“playVideo”、“pauseVideo”、“stopVideo”、“muteVideo”等。(任何视频服务,在本例中为 youtube,都支持)

查看以下链接以查看现场演示:

https://codepen.io/mcakir/pen/JpQpwm

【讨论】:

【参考方案3】:

更改 1 - iframe src url 此处应为空白

<div id="openModal1" class="modalDialog">
    <div>
        <a href="" title="Close" class="close" id="close1">X</a>  
        <iframe   src="" class="homeVideo" id="video1" allowfullscreen="true" allowscriptaccess="always"></iframe>       
    </div>  <!----END modal-body ---->
</div>  <!----END modal ---->

更改 2:如何播放视频只需在查询字符串上使用 autoplay=yup 设置 src URL - 我们不需要启用 JS api:

$('#thumb1').on('click', function(ev) 
	$("iframe#video1")[0].src = "https://www.youtube.com/embed/Lop0VCYdpGQ?rel=0&amp;wmode=transparent&autoplay=1";
);

更改 3 - 如何暂停 - 只需将 iframe src 设置为空字符串:

    $('#close1').click(function()
		$("iframe#video1")[0].src = "";
    );

【讨论】:

但是我们如何从我们暂停的地方开始播放视频呢?

以上是关于在 iFrame 中暂停 YouTube 视频的主要内容,如果未能解决你的问题,请参考以下文章

Youtube Iframe 禁用暂停视频

Youtube video iframe API - 如何在失去焦点时暂停视频?

播放 Soundcloud embed 时暂停 Youtube embed

Youtube iFrame API pauseVideo 在 UIWebView 中未定义

播放另一个嵌入的 YouTube iframe 时停止

Youtube 暂停所有具有相同类的 iframe