Reputation: 1516
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
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