29

我只是想知道,一旦 vimeo 视频播放完毕,是否可以触发事件?

目前,我在叠加层中嵌入了一个 Vimeo,一旦视频停止,我想将其删除。希望这是有道理的!

我真的没有任何可用的代码,但想知道您是否可以向视频添加事件侦听器,在视频完成后触发事件,以及您将如何执行此操作?

谢谢瑞恩

4

3 回答 3

39

自从 Vimeo 推出新的Video Player API以来,以前的答案现在已经过时了。

重要提示:请务必从 iframe 中的 URL 中删除?api=1这是以前使用 Froogaloop 库时需要的,现在不再需要。如果你把它留在里面,'end','seeked' 和其他事件将永远不会触发。

包括新脚本:

<script src="https://player.vimeo.com/api/player.js"></script>

然后使用以下示例:

$(document).ready(function(){

    var iframe = $('#container iframe');
    var player = new Vimeo.Player(iframe);

    player.on('ended', function() {
        console.log('Finished.');
    });

});
于 2017-01-08T11:53:16.087 回答
9

首先,您需要在 HTML 中包含 Vimeo 的“Frogaloop 库的路径”(在您的 Jquery 包含之后):

<script src="https://f.vimeocdn.com/js/froogaloop2.min.js"></script>

然后你需要嵌入你的 Vimeo 视频(同样在你的 HTML 中):

<iframe id="PLAYER1" src="https://player.vimeo.com/video/76979871?api=1&player_id=PLAYER1" width="630" height="354" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>

这里 'api=1' 打开 api - 为了性能,默认情况下关闭。而且, player_id='PLAYER1' 是您的 iframe 的 id。

然后在您的 JavaScript 文件中,您需要以下内容:

$(function() {

    //Gets the iframe by id
    var iframe = $('#PLAYER1');
    //Creates a player var using the iframe
    var player = $f(iframe);

    // When the player is ready/loaded, add a finish event listener
    player.addEvent('ready', function() {
        //Adds an event 'finish' that executes a function 'onFinish' when the video has ended.
        player.addEvent('finish', onFinish);
    });

    //Define the onFinish function that will be called
    function onFinish(id) {
        console.log('THE VIDEO HAS FINISHED PLAYING');
    }

});

然后只需播放视频,并检查控制台输出。

这是文档相应部分的链接。

感谢@Raptor 将我指向 api 文档。

于 2015-09-10T10:13:17.047 回答
5

http://developer.vimeo.com/player/js-api

看看这个页面,尤其是事件监听器部分。如果您需要更多帮助,我相信我也可以在上面写一些代码?

于 2013-01-31T12:12:41.310 回答