Вместо переназначения переменной, соответствующей громкости, когда громкость меньше 1 и время ожидания не установлено, установите тайм-аут, который запускается через 2 секунды, что предупреждает пользователя. Сбросьте время ожидания, если громкость превышает 1:
let timeout;
setInterval(function(){
const vol = meter.volume * 1000;
if (vol > 1) {
clearTimeout(timeout);
timeout = null;
} else if (!timeout) {
timeout = setTimeout(() => {
console.log("You became silent");
}, 2000);
}
},100);
Демонстрационная версия:
let timeout;
setInterval(function() {
const vol = Math.random() + 0.05;
console.log(vol);
if (vol > 1) {
clearTimeout(timeout);
timeout = null;
} else if (!timeout) {
timeout = setTimeout(() => {
alert("You became silent");
}, 2000);
}
}, 100);