42

当我隐藏 YouTube 视频时,它会停止播放。但是,Vimeo 视频并非如此。还有其他方法可以停止 Vimeo 视频吗?

4

7 回答 7

60

首先,向您的 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);
于 2012-06-07T21:11:44.133 回答
13

我最近需要在模式关闭时暂停 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"}', '*');
});
于 2019-02-20T00:24:46.940 回答
12

Vimeo 有一个 JavaScript API,允许您访问和调用视频播放器上的许多属性和方法(包括暂停视频和完全卸载它)。他们还有一个API Playground和GitHub 上的一些示例。

[编辑]

由于您提到您使用通用嵌入代码,以下是网站上的一些警告:

使用通用嵌入代码,与播放器交互的唯一方法是使用window.postMessage。postMessage 是一个相对较新的开发,因此它只能在以下浏览器中使用:Internet Explorer 8+、Firefox 3+、Safari 4+、Chrome 和 Opera 9+。

由于 postMessage 涉及的复杂性,我们编写了一个 JS 迷你库来为您完成所有艰苦的工作!您可以在下载页面上找到它,也可以在下面查看一些示例。

于 2011-05-26T22:57:38.297 回答
6

要恢复 SRC 属性,请在清除之前使用以下内容:

var source = $('iframe#yourVideoId').attr('src');

接下来,清除 SRC 属性:

$('iframe#yourVideoId').attr('src', '');

回调之前的 SRC 属性:

$('iframe#yourVideoId').attr('src', source);
于 2012-06-30T17:14:10.093 回答
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);
    })
于 2014-01-07T11:59:59.340 回答
3

大卫的另一个答案......您可以使用 jQuery 清除 iFrame 的 SRC 属性。

$('iframe#targetID').attr('src','');

我将它与 Vimeo 视频和灯箱效果一起使用。当灯箱再次触发时,我将视频 URL 添加回 iFrame SRC,然后再显示。

于 2012-04-26T12:45:05.577 回答
1

使用 Vimeo JavaScript API,它可以通过以下方式完成:

player.unload()

https://github.com/vimeo/player.js#unload-promisevoid-error

于 2017-05-19T15:07:14.717 回答