跟踪 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);
我正在使用 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);