js延迟播放音频

时间:2018-08-27 11:07:05

标签: javascript html

我在网站上收到了一些音频通知声音。它在发生某些事情时播放。但是我需要使它循环x次。我希望它做得尽可能简单,所以我认为我可以使用setTimeout函数。但不知何故。这是我的代码:

var snd = new Audio("sound.mp3");
if (num1 == balance){
 snd.play();
 setTimeout(function() {snd.play()},500);
}

我没有收到任何错误,只是没有用。声音只播放一次。我的代码有什么问题? 谢谢

2 个答案:

答案 0 :(得分:1)

假设您要播放5次。

var snd = new Audio("sound.mp3");
var times = 0;
function play(){
    snd.play();
    times++;
    if(times < 5) setTimeout(play, 500);
}
setTimeout(play, 500);

答案 1 :(得分:0)

据我所知,您想一遍又一遍地循环播放声音。因此,您需要使用setInterval而不是setTimeout,以便在设置间隔之后触发回调。另外,请使用命名函数,以便在满足条件后清除间隔。

请参阅: https://www.w3schools.com/jsref/met_win_clearinterval.asp,以获取有关代码的更多信息。

注意:

  1. setTimeout-在设置的时间过后将仅调用一次函数。
  2. setInterval-将在提到的时间延迟下一次又一次调用您的函数。