javascript - 使用 JavaScript 播放或暂停音频文件 (onkeydown)

标签 javascript function events audio keycode

我有以下代码,可以在按下 Shift 时完美地播放音频文件(KeyCode:16)。

我想做的是再次按 Shift 键并暂停歌曲。我应该可以多次播放/暂停。

HTML:

<audio id="audio" src="audio/song.mp3" autostart="false"></audio>

JavaScript:

    var sound = {
    16: 'audio'

};

document.onkeydown = function (e) {
    var soundId = sound[e.keyCode];
    if (soundId) document.getElementById(soundId).play();
    else console.log("key not mapped : code is", e.keyCode);
}

最佳答案

检查音频是否暂停,如果是,则播放,否则暂停

var sound = {
    16: 'audio'
};

document.addEventListener('keydown', function(e) {
    var soundId = sound[e.which || e.keyCode];

    if (soundId) {
        var elem = document.getElementById(soundId);

        if ( elem.paused ) {
            elem.play();
        } else {
            elem.pause();
        }
    } else {
        console.log("key not mapped : code is", e.keyCode);
    }
});

关于javascript - 使用 JavaScript 播放或暂停音频文件 (onkeydown),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40443322/

相关文章:

javascript - 在数据加载之前如何拥有 jQuery 移动微调器?

JQuery IFrame Load 事件触发得太快

c# - 我无法使用反射订阅我的事件

javascript - Ember.js 组件 didRender 变量范围

javascript - 按钮没有响应点击

javascript - 如何让一个函数在点击时多次出现

r - 仅当环境中存在变量时,如何在 R 中运行 block ?否则跳到下一个 block

python - 以运算符作为参数的函数

javascript - jQuery mouseenter 和 click 事件

javascript - 在 JavaScript 中替换 "' "with " '' "