我的主要目标是在视频中的 7:45 显示从 20:00 开始的倒数计时器。
这是我正在使用的 jwplayer 调用的事件:
onTime: function(event){showTimer(event.position);}
这是我的函数 showTimer:
function showTimer(video_position){
// Schedule the update to happen once every second
if(Math.round(video_position) == 465){
setInterval(updateTimer, 1000);
}
};
问题: 因为不能保证 onTime() 在 465.0 处正确命中,所以我必须在视频位置上进行 Math.round。如果我这样做,4-10 个 onTime 事件处理程序会在 465.0 - 466.0 内关闭,因此我的 setInterval() 会被调用多次,并且计时器会异常快速地倒计时。
有没有办法让它触发 setInterval() 一次,或者我可以设置一个全局变量让 setInterval() 知道它已经被取消了?
最佳答案
我只是使用一个 bool 标志来检查事件是否已经触发。
var fired = false;
if(Math.round(video_position) == 465 && !fired){
fired = true;
setInterval(updateTimer, 1000);
}
这样它只能触发一次事件。
关于javascript - jwplayer onTime() 每秒调用 setInterval() 几次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23933515/