javascript - JS - Motion Detect EventTrigger 持续触发功能

标签 javascript html5-video

我正在开发一个项目,其中我有一个 while() 循环充当事件监听器。 OnEvent 我需要重置 html 视频中的 .currentTime。

问题是,该事件是由运动传感器触发的,只要激活该传感器,就应该将视频设置为当前播放时间。由于运动传感器始终在监听并在检测到运动时始终发出警报,因此我的视频也陷入此循环,在触发事件监听器时不断重置,而不是播放其完整部分。我似乎想不出解决这个问题的方法。

由于此时我的代码相当长,因此我将仅包含事件监听器和触发器函数。

感谢任何帮助!

       function processWV() {
           var startTime = +new Date(),
               changed = false,
               f;

           context.drawImage(video, 0, 0, canvas.width, canvas.height);
           f = detectf();



           if (experimentType === MASK_EXPERIMENT) {
               drawMasks(f);
           } else {
               highlightf(f);


           }


            //console.log(+new Date() - startTime);

           setTimeout(processWV, 25);
       }



   function listening(f) {


       if (f == false) {
           section = 2;
           updateVideo();
           return false;
       } else {
           section = 1;
       }


       for (var i = 0; i < f.length; i++) {
           var f = f[i];
           context.fillRect(f.x, f.y, f.width, f.height);
       }

   }

   function updateVideo(){
                console.log('update');
               $("#video")[0].currentTime = 14;
   }

最佳答案

您需要为触发函数提供额外的参数,以确保它退出第 2 部分的开头。

如果它正在循环,它可能只是被一遍又一遍地调用到同一位置。你应该做的是这样说:

if(section==2 && video.currentTime < whatever_section_1_end_time_is){
set to section 2;
}

希望这是有道理的。

关于javascript - JS - Motion Detect EventTrigger 持续触发功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22799363/

相关文章:

javascript - 如何在 GWT 中滚动到 div id

javascript - 如何重命名从Reducer.mean 获得的平均值?

html - 如何识别 html5 媒体元素停滞并等待更多媒体继续播放

css - HTML5视频标签横向集中

javascript - 从选定的持续时间循环播放视频

javascript - 如何在错误时打破 promise 链

javascript - fetch POST 返回 HTTP 415,而 curl 继续正常并返回结果

javascript - 设置子窗口的onload属性

javascript - 每秒帧数问题

html - 如何通过 CSS 在 HTML5 视频中设置文本轨道的样式?