目前正在处理包含必须在某些点暂停的视频的页面(如章节)。所以我制作了一个功能,当视频点击下一个“时间标记”时会停止视频:
function vidPause(nextMarker){
var timeMarker = nextMarker;
if(videoPlayer.currentTime >= timeMarker) {
videoPlayer.pause();
videoPlayer.removeEventListener('timeupdate', vidPause());
}
};
我正试图以这种方式解雇它:
videoPlayer.addEventListener('timeupdate', vidPause(nextMarker));
但只是在加载视频时才会触发。视频播放时没有任何反应(通过在vidPause函数中使用console.log(videoPlayer.currentTime);
进行测试)。
注意:我需要以这种方式调用函数,以便我可以在它到达时间标记时删除事件监听器,这样当用户想要从该点开始播放视频时它就不会停止。 / p>
提前感谢任何建议!
答案 0 :(得分:0)
该函数在addEventListener行中被调用一次,但实际上并没有将它作为回调传递。
试试这个:
function videoUpdate(e) {
vidPause(nextMarker, videoPlayer.currentTime;); // Now call your function
}
function vidPause(nextMarker, timeStamp){
var timeMarker = nextMarker;
if (timeStamp >= timeMarker) {
videoPlayer.pause();
videoPlayer.removeEventListener('timeupdate', videoUpdate);
}
};
videoPlayer.addEventListener('timeupdate', videoUpdate); // Note no brackets, as it's passing a ref to the function rather than calling it
我不知道nextMarker
的范围是什么,但您应该能够启动控制台记录并查找。