一定の間隔で 2 つのビデオを切り替える Javascript を作成しようとしています (聞かないでください)。さらに悪いことに、各ビデオは特定の場所から開始する必要があります (約 10 秒、繰り返しになりますが、聞かないでください)。
YUI Async ライブラリを使用して起動し、間隔を置いてビデオを切り替えるだけで、基本が機能するようになりました。
YUI().use('async-queue', function (Y) {
// AsyncQueue is available and ready for use.
var cumulativeTime = 0;
var q = new Y.AsyncQueue()
for (var x = 0; x < settings.length; x++) {
cumulativeTime = cumulativeTime + (settings[x].step * 1000)
q.add( {
fn: runVideo,
args: settings[x].mainWindow,
timeout: cumulativeTime
})
}
q.run()
});
ここまでは順調ですね。問題は、ビデオを 10 秒後に開始できないように見えることです。
私はそれを行うためにこのコードを使用しています:
function runVideo(videoToPlay) {
console.log('We are going to play -> ' + videoToPlay)
var video = document.getElementById('mainWindow')
video.src = '/video?id=' + videoToPlay
video.addEventListener('loadedmetadata', function() {
this.currentTime = 10 // <-- Offending line!
this.play();
})
}
問題は、this.currentTimeが設定した値を保持することを拒否することです。Chrome を介して実行しています (ファイルは Google App Engine インスタンスの背後にある Google Storage から提供されます)。デバッガーがこの行を超えると、値は常にゼロになります。
この値を設定するために欠けているトリックはありますか?
前もって感謝します。