2012-04-09 4 views
1

動画が特定の時間に達したときにイベントを発生させる方法はありますか?ビデオが一定の時間に達した時点でコールバック機能に行きたいと思います。ユーザーがビデオの一部をスキップしたり、バッファリングにかかる​​可能性があるため、ビデオがその時間に達するのにかかる時間は予測できませんビデオが再開する前のある時間、またはそのようなものがあるので、ビデオが特定の時間より早く到達する可能性があるため、タイムイベントを設定するだけで作業ができなくなります。ytplayer apiイベント?動画のある位置に到達しましたか?

私はビデオの時間を問い合わせることができますが、私が望むのは、ビデオが一定の時間に達したときにコールバックを得ることです。これを行う方法はありますか?

答えて

3

私は完全なコードを書くつもりはありませんが、あなたはこのように、間隔を設定する必要があります。

var time = 70; // Time in seconds, e.g. this one is one minute and 10 seconds 
var reached = false; 

var interval = setInterval(function(){ 
    if(player.getCurrentTime() >= time && !reached) { 
     clearInterval(interval); 
     reached = true; 
     timeReached(); 
    } 
},1000); 

function timeReached() { 
    // Do what you have to 
} 
+0

これがポーリングしているほか、無意味です。元の問題を解決することさえできません。 1秒はかなり長い時間ですが、とにかくポーリングが私の望むものだったら私は尋ねなかったでしょう。試してくれてありがとう。 –

+1

このコードは、指定された秒数( 'time')経過後に' timeReached() 'を呼び出します。 '到達済み'が使用されているので、コールバック関数が複数回実行されていないので、簡単に削除できます。 'player.getCurrentTime()'は毎秒更新されるので、1秒はそれほど多すぎたり小さすぎたりしません。失望して申し訳ありませんが、あなたが達成したいことを詳しく説明できますか? –

1

あなたはこのJavascript wrapper for the YouTube player APIを使用することができます。

APIは非常に簡単なイベント処理を提供します。例:

youtubePlayer.at('5000', function() { 
    alert("You're five seconds into this Youtube clip"); 
}); 
+0

それはスローされます:Uncaught TypeError:youtubePlayer.atは関数ではありません。あなたはドキュメントを参照してください –

関連する問題