mjanisz1
mjanisz1

Reputation: 1516

Video event on given second

Need to play the next video, when current video time reaches the given value, but don't know why the event that should get currentTime is not firing at all? Maybe someone has an idea why (obviously the simplest tasks are the ones making most problems)

   function setupVideoPlayer() { 
var currentVideo = 1;
// i.e. [video url, start time, end time]
var videos = [["1.mp4", 0, 4], ["2.mp4", 3, 7]];
var videoPlayer = document.getElementById('videoPlayer');
// set first video clip
videoPlayer.src = videos[0][0]; // 1.mp4
// Syncrhonization function should come here


videoPlayer.addEventListener('timeupdate', function(e){
    if (this.currentTime == videos[currentVideo-1][2]) {
        currentVideo += 1;
        this.src = videos[currentVideo-1][0];
        this.play();
    }
}, true);

// It makes sure the seek will happen after buffering 
// the video
videoPlayer.addEventListener('progress', function(e) {
    // Seek to start point
    this.currentTime = videos[currentVideo-1][1]; 
}, false)
}

Upvotes: 0

Views: 169

Answers (1)

Offbeatmammal
Offbeatmammal

Reputation: 8228

I would suggest changing the time check to a > rather than = because the currentTime event isn't an integrer

if (this.currentTime == videos[currentVideo-1][2]) {

becomes

if (this.currentTime > videos[currentVideo-1][2]) {

(or you could convert it to an integrer for the test)

If there are other issues it's worth adding a console.log(this.currentTime) to the event just to see if it's triggering the code

Upvotes: 1

Related Questions