我試圖做一個小腳本,將我的文字轉換成莫爾斯,我已經能夠做到這一點很容易,但是我試圖播放聲音,但他們都堆疊起來。我一直在嘗試使用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
我試圖添加一個暫停,但每個「符號」後所需的暫停是不同的。換句話說,他們不會處於良好的秩序,有些將被堆積。 –