我有这个功能可以对不同的按键播放不同的声音。但是如果我按下一个键,然后立即按下另一个键,之前的声音仍然会播放。
我的问题是,如何在播放新的声音时取消之前的声音?
代码如下:
window.addEventListener("keydown", checkKeyPressed, false);
function checkKeyPressed(evt) {
if (evt.keyCode == "81") { //q
document.getElementById('enklyd').play();
}
if (evt.keyCode == "87") { //w
document.getElementById('lyd1').play();
}
if (evt.keyCode == "69") { //e
document.getElementById('lyd2').play();
}
if (evt.keyCode == "82") { //r
document.getElementById('lyd3').play();
}
if (evt.keyCode == "84") { //t
document.getElementById('lyd4').play();
}
if (evt.keyCode == "89") { //y
document.getElementById('lyd5').play();
}
}
最佳答案
这实际上不是“停止” if 语句的问题,因为它们各自正确地完成了它们的工作。您要停止的是正在播放的声音片段。
为此你可以使用.pause()
方法,将.currentTime
设置为0
,或者我相信你也可以设置将音量调到 0,让它播放。
如评论中所述,有一些 SO 问题可能已经回答了这个问题。是否存在未在其中得到解答的独特情况?
关于javascript - 如果另一个语句为真,则取消 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53804995/