0

需要播放下一个视频,当当前视频时间达到给定值时,但不知道为什么应该获取 currentTime 的事件根本没有触发?也许有人知道为什么(显然最简单的任务是最容易出现问题的任务)

   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)
}
4

1 回答 1

1

我建议将时间检查更改为 > 而不是 = 因为 currentTime 事件不是整数

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

变成

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

(或者您可以将其转换为用于测试的积分器)

如果还有其他问题,值得console.log(this.currentTime)在事件中添加一个以查看它是否触发了代码

于 2013-03-16T06:21:41.810 回答