2

一定の間隔で 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 から提供されます)。デバッガーがこの行を超えると、値は常にゼロになります。

この値を設定するために欠けているトリックはありますか?

前もって感謝します。

4

1 に答える 1