如何setTimeout
使用 停止特定循环clearTimeout(myVar)
?
我正在使用多个回调,其中包含唯一的音频文件名作为参数。当函数triggerAudio
接收到回调时,它会启动音频文件循环。问题是,如果我启动了多个 setTimeout 音频循环(即同时播放多个声音),如何停止特定循环/声音/setTimout?换句话说,我如何选择停止哪个音频循环?
// starts 1.wav looping
(function loopStart() {
triggerAudio('1.wav');
}());
// starts 2.wav looping
(function loopStart() {
triggerAudio('2.wav');
}());
// stops one of the audio loops after 5 seconds
setTimeout(function() {
(function loopStop() {
clearTimeout(myVar); // not sure how to control which function this will stop/clear
}());
}, 5000);
// main functino that loops the files noted by the callbacks
function triggerAudio(soundFileName) {
// code that starts and loops audio file with setTimeout loop
}
我怀疑我需要以某种方式命名(我不确定术语)setTimeout
每个回调开始的,以便我可以停止那个?但是,我不确定如何解决这个问题。