我试图做一个小脚本,将我的文字转换成莫尔斯,我已经能够做到这一点很容易,但是我试图播放声音,但他们都堆叠起来。我一直在尝试使用addEventListener,但它只与第二个声音一起工作,而所有其他声音都是“堆叠”的。这有点难以解释,但是如何使一个接一个播放的声音成为一种“队列”?如何在Javascript中全部堆叠时触发一个声音?
在这个函数中,我得到莫尔斯的代码(例如:**** * * - ** * - ** ---),它正在读取莫尔斯发出的声音,但像我说,这是全部“堆积”。
function readMorse(){
traductionWord();
var int_position_morse;
int_position_morse = 0;
while (strCodeMorse.charAt(int_position_morse) != ""){
if (strCodeMorse.charAt(int_position_morse) == "*"){
playShortSnd();
int_position_morse++;
}
if (strCodeMorse.charAt(int_position_morse) == "-"){
playLongSnd();
int_position_morse++;
}
if (strCodeMorse.charAt(int_position_morse) == " "){
int_position_morse++;
}
}`
对不起,如果有点不清楚。
感谢
播放声音是一种异步操作,您必须等待声音完成。 –
您可以尝试在每个声音之后添加暂停。看到这篇文章:http://stackoverflow.com/questions/14226803/javascript-wait-5-seconds-before-executing-next-line – Jacey
我试图添加一个暂停,但每个“符号”后所需的暂停是不同的。换句话说,他们不会处于良好的秩序,有些将被堆积。 –