当前视频时间达到给定值时,需要播放下一个视频,但不知道为什么应该获取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)
}
答案 0 :(得分:1)
我建议将时间检查更改为>而不是=因为currentTime事件不是整合者p>
if (this.currentTime == videos[currentVideo-1][2]) {
变为
if (this.currentTime > videos[currentVideo-1][2]) {
(或者您可以将其转换为测试的集成商)
如果还有其他问题值得为此事件添加console.log(this.currentTime)
,以确定它是否触发了代码