0

Vimeo の Froogaloop API に苦労しています。

私は Web ベースのゲームに取り組んでおり、ユーザーが次のレベルに入る前に、ビデオ全体 (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 に答える