当我隐藏YouTube视频时,它会停止播放。但是,Vimeo视频不是这种情况。还有另一种方法可以阻止Vimeo视频吗?
答案 0 :(得分:53)
首先,为您的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);
答案 1 :(得分:10)
Vimeo拥有a JavaScript API,允许您访问和调用视频播放器上的许多属性和方法(包括暂停视频并完全卸载视频)。他们还有一个API Playground和一些examples on GitHub。
[编辑]
由于您提到您使用通用嵌入代码,以下是网站上的一些注意事项:
使用Universal Embed Code,与玩家互动的唯一方法是使用window.postMessage。 postMessage是一个相对较新的开发,因此它可以在以下浏览器中使用:Internet Explorer 8 +,Firefox 3 +,Safari 4 +,Chrome和Opera 9 +。
由于postMessage涉及复杂性,我们编写了一个JS迷你库,为您完成所有艰苦工作!您可以在downloads page上找到它,或者您可以看到一些示例below。
答案 2 :(得分:6)
要恢复SRC属性,请在清除之前使用以下内容:
var source = $('iframe#yourVideoId').attr('src');
下一个SRC属性明确:
$('iframe#yourVideoId').attr('src','');
回调上一个SRC属性:
$('iframe#yourVideoId').attr('src',source);
答案 3 :(得分:4)
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);
})
答案 4 :(得分:3)
David的另一个答案是......你可以使用jQuery来清除iFrame的SRC属性。
$('iframe#targetID').attr('src','');
我正在使用Vimeo视频和灯箱效果。再次触发灯箱时,我会在显示之前将视频网址添加回iFrame SRC。
答案 5 :(得分:1)
尝试使用vimeo播放器API: http://developer.vimeo.com/player/js-api#methods
请记得打开API。例如:http://player.vimeo.com/video/VIDEO_ID?api=1
答案 6 :(得分:1)
最近,我需要在模式关闭时暂停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"}', '*');
});
答案 7 :(得分:0)
使用Vimeo javascript API可以使用
完成player.unload()
答案 8 :(得分:-1)
我使用jQuery从DOM中删除iframe。