javascript - jwplayer onTime() 每秒调用 setInterval() 几次

标签 javascript jquery jwplayer

我的主要目标是在视频中的 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/

相关文章:

javascript - 当客户端在 JW Player 中恢复丢失的连接时自动重新连接

javascript - 重新启动背景 SVG 动画

javascript - jquery 我正在尝试从表单外部的按钮将隐藏字段附加到隐藏的 div

javascript - 如何在innerHTML中添加jquery fadein

javascript - 使用javascript为jwplayer的HTML元素覆盖设置wmode

javascript - 添加、更新标记/书签到 JwPlayer

javascript - 如何在 Chrome 开发工具中使用 getEventListeners?

javascript - 复制图像的按钮

jquery - 数据表重新初始化时出错

javascript - 使用 Knockout JS 单击时隐藏和显示特定数组元素