Quando clico no botão começa sair o áudio, se clicar em outro, interrompe o áudio anterior mas se retorno nos botões já clicados não reinicia o áudio, como corrigir esse erro por favor ?
No js foi acrescentado apenas o comando para interromper o som, quando outro botão é selecionado:
let audioAtual = null;
function tocaSom (seletorAudio) {
const elemento = document.querySelector(seletorAudio);
if (elemento != null && elemento.localName === 'audio') {
if (audioAtual != null) { // se houver um áudio sendo reproduzido atualmente, pausa a reprodução antes de tocar o novo áudio
audioAtual.pause();
}
elemento.play();
audioAtual = elemento; // atribui o novo elemento de áudio à variável global
} else {
console.log('Elemento não encontrado ou seletor inválido');
}
}
const listaDeTeclas = document.querySelectorAll('.tecla');
for (let contador = 0; contador < listaDeTeclas.length; contador++) {
const tecla = listaDeTeclas[contador];
const instrumento = tecla.classList[1];
const idAudio = `#som_${instrumento}`;
tecla.onclick = function () {
tocaSom(idAudio);
}
tecla.onkeydown = function (evento) {
if (evento.code === 'Space' || evento.code === 'Enter') {
tecla.classList.add('ativa');
}
}
tecla.onkeyup = function () {
tecla.classList.remove('ativa');
}
}