运行 如果在 1 秒内调用 50 次,则该函数仅调用一次
Run the function only once if its been called 50 times in 1 second
这是函数,它的作用是在有新订单时播放声音。所以有 50 个订单同时来,现在它播放 50 次声音,只有 1 次就足够了。知道如何实现吗?
function playSound() {
var audio = new Audio('/audio/short_notification.mp3');
audio.play()
}
找到了一些 similar questions 但他们没有提供太多帮助。
您可以使用一个全局变量var来检查它是否播放过一次。
var isPlayedOnce = false;
function playSound() {
if(!isPlayedOnce){
var audio = new Audio('/audio/short_notification.mp3');
audio.play();
isPlayedOnce = true;
}
}
使用 setTimeout 函数重置控制音频播放的变量。
let isPlaying = true;
const silentTimeOutCounter = 1000;
function playSound() {
if(isPlaying){
var audio = new Audio('/audio/short_notification.mp3');
audio.play();
isPlaying = false;
setTimeout(() => {isPlaying = true;} ,silentTimeOutCounter);
}
}
playSound();
您可以设置timer
并检查函数是否在最后一秒被调用。
let timer = 0;
function playSound() {
if (Date.now() - timer < 1000) return;
timer = Date.now();
var audio = new Audio('/audio/short_notification.mp3');
audio.play();
}
这是函数,它的作用是在有新订单时播放声音。所以有 50 个订单同时来,现在它播放 50 次声音,只有 1 次就足够了。知道如何实现吗?
function playSound() {
var audio = new Audio('/audio/short_notification.mp3');
audio.play()
}
找到了一些 similar questions 但他们没有提供太多帮助。
您可以使用一个全局变量var来检查它是否播放过一次。
var isPlayedOnce = false;
function playSound() {
if(!isPlayedOnce){
var audio = new Audio('/audio/short_notification.mp3');
audio.play();
isPlayedOnce = true;
}
}
使用 setTimeout 函数重置控制音频播放的变量。
let isPlaying = true;
const silentTimeOutCounter = 1000;
function playSound() {
if(isPlaying){
var audio = new Audio('/audio/short_notification.mp3');
audio.play();
isPlaying = false;
setTimeout(() => {isPlaying = true;} ,silentTimeOutCounter);
}
}
playSound();
您可以设置timer
并检查函数是否在最后一秒被调用。
let timer = 0;
function playSound() {
if (Date.now() - timer < 1000) return;
timer = Date.now();
var audio = new Audio('/audio/short_notification.mp3');
audio.play();
}