![](/img/trans.png)
[英]Vimeo Api - Can't fire playProgress event using Froogaloop
[英]Vimeo Froogaloop API not recognizing an event
我正在尝试使用froogaloop API识别vimeo的onPlay,onPause和onFinish事件。 我尝试过用这个东西想象的一切,没有运气。
我在Firefox上遇到此错误:
在Chrome中:
从CDN导入froogaloop:
<script src="http://a.vimeocdn.com/js/froogaloop2.min.js"></script>
我的JS:
$(function(){
var vimeoPlayer = document.querySelector('iframe');
$f(vimeoPlayer).addEvent('ready', ready);
function ready(player_id) {
froogaloop = $f(player_id);
function setupEventListeners() {
function onPlay() {
froogaloop.addEvent('play',
function(data) {
console.log('play event');
});
}
function onPause() {
froogaloop.addEvent('pause',
function(data) {
console.log('pause event');
});
}
function onFinish() {
froogaloop.addEvent('finish',
function(data) {
console.log('finish');
});
}
onPlay();
onPause();
onFinish();
}
setupEventListeners();
}
})
我的HTML:
<iframe src="http://player.vimeo.com/video/3718294?api=1" width="623" height="350" frameborder="0" id="iframe-video"></iframe>
经过几个小时的挫折......我找到了解决方案。
由于我在iframe上使用了ID ...显然vimeo API会强制您将参数添加到您要获取的URL(player_id = iframe-id)。
所以iFrame看起来应该是这样的:
<iframe src="//player.vimeo.com/video/3718294?api=1&player_id=promo-vid"
width="623" height="350" frameborder="0"
id="promo-vid">
</iframe>
特别感谢Drew Baker指出这一点: http : //vimeo.com/forums/topic : 38114 #comment_5043696
使用jQuery选择iframe时创建播放器元素时出错。
var iframe = $('#player1');
var player = $f(iframe);
结果是
TypeError: d[f] is undefined
我的解决方案是选择jQuery ID选择器中的第一个元素
var iframe = $('#player1')[0];
var player = $f(iframe);
有一个类似的问题,使用Froggaloop2 - 似乎如果视频被缓存,就绪事件将仅触发一次(在初始加载时)。 解决方案是通过更改src来检索iframe,如下所示:
$(iframe).attr('src', $(iframe).attr('src') + '#timestamp='+(new Date()).getTime());
我有一个类似的问题,但在这种情况下,用Vimeo.Player替换Froggaloop后,它仍然是一个新的限制铬。 我收到错误“play()失败,因为用户没有先与文档交互......”。 经过进一步的研究,看起来Chrome增加了一些限制, 请看这里 。 我的解决方案是将allow="autoplay"
添加到iframe。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.