跟踪 JS 对象跟踪器眼睛

Tracking JS object tracker eyes

我正在使用 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();
      }

有没有办法降低此功能 运行 的频率或指定它应该每秒 运行 多少次?

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

_.throttle,得到一个函数和节流时间,returns一个节流函数,所以你可以将它用作:

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);