gpt4 book ai didi

javascript - 当它们全部堆叠在 Javascript 中时,如何同时触发一种声音?

转载 作者:行者123 更新时间:2023-11-29 15:24:35 24 4
gpt4 key购买 nike

我正在尝试制作一个小脚本,将我的文本转换为莫尔斯码,我已经能够很容易地做到这一点,但是我正在尝试播放声音,但它们都叠加起来了。我一直在尝试使用 addEventListener,但它只适用于第二种声音,而所有其他声音都在“堆叠”。这有点难以解释,但是如何制作一种将要一个接一个地播放的声音“队列”?

在这个函数中,我正在获取莫尔斯码(例如:**** * *-** *-** ---),它正在读取莫尔斯码来发出声音,但就像我说,都是“叠”的。

   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++;
}
}`

抱歉,如果有点不清楚。

谢谢

最佳答案

莫尔斯播放器的一个简单解决方案是将声音排队并按顺序播放,中间有停顿。

一个非常简单的实现可以使用setInterval:

pendingSounds = []

function queueSound(sound) {
pendingSounds.push(sound)
}

function playPendingSound() {
playSound(pendingSounds.shift())
}

setInterval(playPendingSound, 200)

如果你想有不同长度的停顿,你可以每次使用setTimeout

关于javascript - 当它们全部堆叠在 Javascript 中时,如何同时触发一种声音?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40637694/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com