我只是想知道,一旦 vimeo 视频播放完毕,是否可以触发事件?
目前,我在叠加层中嵌入了一个 Vimeo,一旦视频停止,我想将其删除。希望这是有道理的!
我真的没有任何可用的代码,但想知道您是否可以向视频添加事件侦听器,在视频完成后触发事件,以及您将如何执行此操作?
谢谢瑞恩
自从 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.');
});
});
首先,您需要在 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 文档。
http://developer.vimeo.com/player/js-api
看看这个页面,尤其是事件监听器部分。如果您需要更多帮助,我相信我也可以在上面写一些代码?