0

我正在努力使用 Vimeo 的 Froogaloop API。

我正在开发一个基于网络的游戏,我需要在用户进入下一个级别之前,他观看整个视频(不超过 3 分钟)。

我想我可以使用一个while循环,只要当前时间的值小于视频的持续时间,它就会不断获取当前时间来评估。当值匹配时,链接到下一个级别的按钮被解锁。为此,我必须将 getCurrentTime 和 getDuration 值存储在 javascript 变量中。

到目前为止,这似乎很容易,但显然 Froogaloop 需要带有 get 方法的回调函数,我无法将它们正确保存到变量中。

function getDuration(playerID,value) {
            Froogaloop(playerID).api('getDuration',function(dur) {
                    value(dur);
                });    
            }

            var durata = getDuration(playerID,function(value){
                          var length = value;
                          return(length);
                         });
}

但是这种方式“durata”变量返回未定义。我错过了什么吗?

谢谢

4

1 回答 1

0

因为 API 是异步的,所以不能同步返回值。如果您要播放视频直到结束,我建议您使用finish事件而不是测试当前时间和持续时间。

看起来像这样:

$f(playerID).addEvent('finish', function() {
    // video has finished playing here
    goToNextLevel();
});
于 2014-03-18T18:41:23.710 回答