javascript - 如果另一个语句为真,则取消 if 语句

标签 javascript function if-statement html5-audio

我有这个功能可以对不同的按键播放不同的声音。但是如果我按下一个键,然后立即按下另一个键,之前的声音仍然会播放。

我的问题是,如何在播放新的声音时取消之前的声音?

代码如下:

    
 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/

相关文章:

javascript - 将必需添加到动态创建的元素

javascript - 使用 localStorage 保存整个文件

javascript - 调整窗口大小时不希望 "close"按钮移动

javascript - ASCII 表,其中字段可以有换行符

php - WordPress Mobile Detect 作为 body_class 函数

Python 函数正在改变我输入的值,我不明白为什么

C程序: Integer array pointer changes values when passed as parameter

c++ - 如何独立检查多个变量?

javascript - 将嵌套的 if 语句转换为更优雅的 switch?

linux - 如何在csh 中将If-else 语句写在一行中?