Vimeo JS API - Froogaloop - 立即/太早完成事件调用?

时间:2014-01-05 12:15:32

标签: javascript jquery vimeo-api vimeo-player

根据vimeo js-api doc,事件finish - Fires when the video playback reaches the end.

出于某种原因,我无法让它工作,finish事件总是立即调用,我做错了吗?

我试图让嵌入式视频在播放完毕后消失。我已关注this example by Drew Baker,但无法正常调用finish事件。

我做了一个非常直截了当的jsbin here来证明这个问题。

这种行为似乎发生在Safari,Chrome和Firefox上(在Mac上)。

-

来自JSBIN的JS代码:

$(document).ready(function() {
  $('iframe.vimeo').each(function(){
    Froogaloop(this).addEvent('ready', ready);
  });

  function ready(playerID){
    Froogaloop(playerID).addEvent('play', play(playerID));
    Froogaloop(playerID).addEvent('seek', seek);
    Froogaloop(playerID).addEvent('finish', onFinish(playerID));

    Froogaloop(playerID).api('play');
  }

  function play(playerID){
    alert(playerID + " is playing!!!");
  }

  function seek() {
    alert('Seeking');
  }

  function onFinish(playerID) {
    alert(playerID + " finished!!!");
    $('#'+playerID).remove();
  }
});

1 个答案:

答案 0 :(得分:3)

您正在执行函数,而不是将函数引用传递给addEvent方法。

Froogaloop(playerID).addEvent('play', play);
Froogaloop(playerID).addEvent('seek', seek);
Froogaloop(playerID).addEvent('finish', onFinish);

请注意,FroogaloopplayerID作为参数传递给play回调函数,我不确定它是否将playerID作为参数传递给{ {1}}回调函数(虽然我猜它可能会这样)。