【发布时间】:2011-05-26 22:48:21
【问题描述】:
当我隐藏 YouTube 视频时,它会停止播放。但是,Vimeo 视频并非如此。还有其他方法可以停止 Vimeo 视频吗?
【问题讨论】:
-
您使用的是通用嵌入代码还是 Flash 嵌入代码?
-
带有 iframe 标签
标签: javascript jquery vimeo
当我隐藏 YouTube 视频时,它会停止播放。但是,Vimeo 视频并非如此。还有其他方法可以停止 Vimeo 视频吗?
【问题讨论】:
标签: javascript jquery vimeo
首先,向您的 iFrame 添加一个 ID。然后将此添加到您的 javascript 关闭窗口单击功能中:
var $frame = $('iframe#yourIframeId');
// saves the current iframe source
var vidsrc = $frame.attr('src');
// sets the source to nothing, stopping the video
$frame.attr('src','');
// sets it back to the correct link so that it reloads immediately on the next window open
$frame.attr('src', vidsrc);
【讨论】:
我最近需要在 Bootstrap 模式关闭时暂停一个 Vimeo 视频。
Vimeo 视频嵌入在 iframe 中。
这对我有用:
$("#my-bootstrap-modal").on('hidden.bs.modal', function (e) {
var div = document.getElementById("my-bootstrap-modal");
var iframe = div.getElementsByTagName("iframe")[0].contentWindow;
iframe.postMessage('{"method":"pause"}', '*');
});
【讨论】:
Vimeo 有a JavaScript API,允许您访问和调用视频播放器上的许多属性和方法(包括暂停视频和完全卸载视频)。他们还有一个API Playground 和一些examples on GitHub。
[编辑]
由于您提到您使用通用嵌入代码,以下是网站上的一些警告:
使用通用嵌入代码,与播放器交互的唯一方法是使用window.postMessage。 postMessage 是一个相对较新的开发,因此它仅适用于以下浏览器:Internet Explorer 8+、Firefox 3+、Safari 4+、Chrome 和 Opera 9+。
由于 postMessage 涉及的复杂性,我们编写了一个 JS 迷你库,可以为您完成所有繁重的工作!您可以在 downloads page 上找到它,或者您可以查看一些示例 below。
【讨论】:
要恢复 SRC 属性,请在清除之前使用以下内容:
var source = $('iframe#yourVideoId').attr('src');
接下来,清除SRC属性:
$('iframe#yourVideoId').attr('src', '');
回调之前的 SRC 属性:
$('iframe#yourVideoId').attr('src', source);
【讨论】:
var vidUrl = $("iframe#video-frame").attr('src');
//Basically stops and starts the video on modal open/close
$('#video').on('hidden.bs.modal', function (e) {
$("iframe#video-frame").attr('src','');
});
$('#video').on('show.bs.modal', function (e) {
$("iframe#video-frame").attr('src', vidUrl);
})
【讨论】:
David 的另一个答案...您可以使用 jQuery 清除 iFrame 的 SRC 属性。
$('iframe#targetID').attr('src','');
我将它与 Vimeo 视频和灯箱效果一起使用。当灯箱再次触发时,我将视频 URL 添加回 iFrame SRC,然后再显示。
【讨论】:
使用 Vimeo JavaScript API,可以做到:
player.unload()
【讨论】: