Intento escribir un código JS donde, cuando presiono algunas teclas de letras en mi teclado o cuando hago clic en los botones que simbolizan estas mismas letras (cada botón tiene un nombre de clase con una de estas letras), esto reproduce un sonido.
No entiendo por qué el siguiente código en concreto no funciona:
var numberOfButtons = document.querySelectorAll(".drum"); for (var i = 0; i < numberOfButtons.length; i++) { numberOfButtons[i].addEventListener("click", function() { var buttonHTML = this.textContent; makeSound(buttonHTML); }); document.addEventListener("keydown", function(event) { makeSound(event.key); }); function makeSound(key) { switch (key) { case "w": var tom1 = new Audio('sounds/tom-1.mp3'); tom1.play(); break; case "a": var tom2 = new Audio('sounds/tom-2.mp3'); tom2.play(); break; case "s": var tom3 = new Audio('sounds/tom-3.mp3'); tom3.play(); break; case "d": var tom4 = new Audio('sounds/tom-4.mp3'); tom4.play(); break; case "j": var snare = new Audio('sounds/snare.mp3'); snare.play(); break; case "k": var crash = new Audio('sounds/crash.mp3'); crash.play(); break; case "l": var kick = new Audio('sounds/kick-bass.mp3'); kick.play(); break; default: console.log(event.key); } }