1

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

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

我试图让嵌入的视频在播放完毕后消失。我遵循了 Drew Baker 的这个例子,但根本无法finish正确调用事件。

我在这里做了一个非常简单的jsbin来演示这个问题。

这种行为似乎发生在 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();
  }
});
4

1 回答 1

3

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

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

请注意,FroogaloopplayerID作为参数传递给play回调函数,我不确定它是否将playerID作为参数传递给finish回调函数(尽管我猜它可能确实如此)。

于 2014-01-06T16:50:07.170 回答