javascript - 不循环播放声音文件
问题描述
纯 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";
}
解决方案
运行 snipped keep key 并在控制台上查看.....
window.addEventListener("keydown", e => {
console.log(e.key)
});
现在防止重复
window.addEventListener("keydown", e => {
if(e.repeat)
return
console.log(e.key)
});
推荐阅读
- php - Bootstrap,为什么产品会随意展示?
- c++ - std::priority_queue::pop 什么时候可以抛出异常
- excel - excel中的最小值和最大值
- android - Android Studio 构建错误 - 找不到参数 [com.google.firebase:firebase-core:16.0.0] 的方法 implementation()
- android - 如何在 react-native 的视图中列出所有通知
- bootstrap-4 - Bootstrap 4.1.1 导航栏不适用于 Angular 6
- r - 合并不同范围的栅格,对 R 中的重叠单元格值求和
- html - HTML:第一个孩子没有给出期望的结果
- jquery - 从函数修改全局变量
- java - JTable 复选框(布尔)列不可编辑