【问题标题】:Tracking JS object tracker eyes跟踪 JS 对象跟踪器的眼睛
【发布时间】:2018-09-01 06:14:55
【问题描述】:

我正在使用 Tracking JS 来帮助检测用户的眼睛是否睁开,然后仅在检测到少于 3 个对象(面部、嘴巴和一只眼睛)时才播放音频。我基本上相信它并且有效,但事件跟踪和更新数据的方式过于频繁,导致体验非常不稳定和不和谐。

目前,我让跟踪器不断检查跟踪器,如下所示:

  tracker.on('track', function(event) {

      if (event.data.length > 2 ) {
          document.body.classList.add("hide");
          pauseAudio();
      } else {
          document.body.classList.remove("hide");
          playAudio();
      }

有没有办法降低运行这个函数的频率或指定它每秒应该运行多少次?

【问题讨论】:

    标签: javascript event-handling face-detection tracking.js


    【解决方案1】:

    您可以使用某种节流机制,lodash 已经构建了它。

    _.throttle,获取一个限流函数和时间,返回一个限流函数,所以你可以这样使用:

    const handler = function(event) {
    
          if (event.data.length > 2 ) {
              document.body.classList.add("hide");
              pauseAudio();
          } else {
              document.body.classList.remove("hide");
              playAudio();
          }
    };
    const throttledHandler = _.throttle(handler, 100); // 100ms
    tracker.on('track', throttledHandler);
    

    【讨论】:

    • 谢谢@felixmosh,这正是我想要的。很高兴知道和记住!
    猜你喜欢
    • 2021-05-25
    • 2020-09-30
    • 1970-01-01
    • 2015-02-03
    • 2015-11-12
    • 2011-05-26
    • 2013-03-23
    • 2017-04-15
    • 2015-05-02
    相关资源
    最近更新 更多