循环播放音频文件数组时,音频fils一次播放

时间:2019-03-13 05:47:46

标签: javascript settimeout

我正在使用Simon游戏应用程序,现在有一个测试按钮。单击它时,将随机生成的颜色推入botPattern数组变量,然后我要遍历该数组并根据存储的项/颜色播放每个数组项的音频。

现在的问题是所有声音都是一次播放,而不是一个接一个地播放。所以我单击了第二次或第三次,阵列中的所有颜色声音都立即播放。我该如何解决?我尝试使用settimeout,但id没有任何作用。这是一个片段:

        setTimeout(simonGameApp.playAudio(color), 5000);
      });

下面是代码:https://codesandbox.io/s/00v44vrxj0

击中测试按钮将调用generateColorSequence函数。 我只想播放第一个数组项,然后播放第二个,依此类推 关于如何解决的任何想法?

1 个答案:

答案 0 :(得分:1)

这是因为调用simonGameApp.playAudio(color)并将函数的return值传递给setTimeout()。您需要将其包装在另一个函数中

setTimeout(function(){
   simonGameApp.playAudio(color)
}, 5000);

ES6语法

setTimeout(() => simonGameApp.playAudio(color),5000)