【发布时间】:2020-10-06 15:13:46
【问题描述】:
我正在创建一个吉他应用程序,当您按下某些键时会播放和弦。我有根据您按下的键播放音频的代码。现在只有 A 和 G 和弦在起作用。但是,如果您再次按下相同的键或按下另一个键,音频仍将与新音频一起继续播放。我希望在您抬起所按住的键(keyup)后停止当前的声音。 我正在阅读有关 Audio.pause() 和 currentTime = 0 的信息,但我不知道如何让它们工作。
document.addEventListener('keydown', function(event) {
makeSound(event.key);
});
function makeSound(key) {
switch(key) {
case "a":
var a2 = new Audio('sounds/a2.wav');
a2.play();
break;
case "g":
var g2 = new Audio('sounds/g2.wav');
g2.play();
break;
}
};
body {
background: black;
font-family: sans-serif;
}
button {
font-size: 30px;
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="styles.css">
<title>Guitar</title>
</head>
<body>
<button class="chord a2">A2</button>
<button class="chord g2">G2</button>
<script src="main.js"></script>
</body>
</html>
【问题讨论】:
标签: javascript audio