Vimeo检查视频是否暂停

时间:2013-10-09 23:25:59

标签: jquery vimeo vimeo-player

相关问题:How to get video play paused status with Vimeo API?

我正在尝试实现切换按钮,我不确定如何检查视频是否处于暂停状态。我见过的所有例子都涉及2个单独的播放和暂停按钮。

var iframe = $('#vimeo-frame')[0];
var player = $f(iframe);

$('#controls li.vimeo a').bind('click', function() {
    var $this = $(this);
    if( player.api('paused') ) {
        player.api('play');
       // yep video is paused, so now play it 
    } else {
        player.api('pause');
               // video was playing, so now pause it.
    }

});

我试过player.api('paused')因为它应该返回一个布尔值。 player.api('play')player.api('pause')按预期工作。有人可以帮助我吗? 感谢。

编辑Brads建议:

var iframe = $('#vimeo-frame')[0];
var player = $f(iframe);

$('#controls li.vimeo a').bind('click', function() {
       var $this = $(this);
       console.log('clicked'); // triggers
       player.api('paused', function(paused) {
       console.log('inside paused'); // doesn't trigger
            if (paused) {
              player.api('play');
            }
            else {
              player.api('pause');
            }
       });

}); 

我的研究让我:Where does this pause vimeo embed code go in my slider script?http://jsfiddle.net/bdougherty/UTt2K/56/但仍然不太奏效。

2 个答案:

答案 0 :(得分:0)

由于API使用postMessage,因此抓取任何数据都需要使用回调函数。您应该将回调作为第二个参数传递给api调用。您要求的值将作为第一个参数传递给回调。

player.addEvent('paused', function(paused) {
    if (paused) {
        player.api('play');
    }
    else {
        player.api('pause');
    }
});

答案 1 :(得分:0)

可能你错过了文档中的这一行? (我知道我确实这样做了)

  

如果您在页面上嵌入和控制多个玩家或使用我们的JS API库(Froogaloop),您应该为每个玩家提供一个与iframe元素的id匹配的player_id。

     

http://player.vimeo.com/video/VIDEO_ID?api=1&player_id=vimeoplayer