HTML5 の癖、またはVideo.jsに固有のものとして確認したい小さな矛盾に気付きました。
currentTime()
新しい時間を提供しながらVideo.js の関数を呼び出すと、(現在の時間を取得するために) をさらに呼び出すと、イベントが発生currentTime()
するまで正しい時間が返されないようです (前の時間が返されます) 。イベントtimeupdate
終了後、正しい時刻を返します。timeupdate
currentTime()
たとえば、ビデオの再生はまだ開始されていませんが、Video.js がロードされ、すべてのビデオ メタなどが読み込まれているとします。
videoPlayer.addEvent('timeupdate', function() {
console.log('Event callback: ' + player.currentTime);
});
console.log('Original time: ' + player.currentTime);
player.currentTime(100);
console.log('New time: ' + player.currentTime);
私が期待していた出力は次のようになります。
Original time: 0
New time: 100
Event callback: 100
しかし、私が受け取ったものは次のとおりです。
Original time: 0
New time: 0
Event callback: 100
どんな洞察も素晴らしいでしょう!
編集: OSX の Chrome と Safari ではこれを再現できますが、OSX の Firefox では再現できません (すべて HTML5 を使用)。Flash プレーヤーを使用して IE8 で、HTML5 プレーヤーを使用して IE9 でこれを再現することもできます。