首页 > 解决方案 > 不循环播放声音文件

问题描述

纯 JavaScript。想要在按键时播放(打字机)声音(.wav)。同时,只要按下按键,灯就会亮起并一直亮着。问题是声音文件一直循环,直到我释放密钥。有没有办法让声音文件只播放一次而不循环,即使我按住键?

脚本.js

window.addEventListener("keydown", lightOn, false);
window.addEventListener("keyup", lightOff, false);
let click = new Audio("../sound/click.wav");

function lightOn(key) {
  switch (key.keyCode) {
    case 65:
      // click.loop = false; <- tried this but does not prevent looping
      click.play();
      document.getElementById("a").style.color = "goldenrod";
  }
}

function lightOff() {
  document.querySelector(".typing").style.color = "#ccc";
}

标签: javascriptaudiokeydown

解决方案


运行 snipped keep key 并在控制台上查看.....

window.addEventListener("keydown", e => {
  console.log(e.key)
});

现在防止重复

    window.addEventListener("keydown", e => {
      if(e.repeat) 
        return
      console.log(e.key)
    });


推荐阅读