Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] HELP/ Ao iniciar novamente o Site, ele apresenta erro.

//resolvido O erro estava na ausência do # na const idAudio = som_${instrumento};

Quando fui iniciar essa aula, e abrir a pagina novamente no navegador, o console me retorna o seguinte erro quando clico nas teclas, testei em outros navegadores e o mesmo retorna a acontecer:

Uncaught TypeError: document.querySelector(...) is null tocaSom http://127.0.0.1:5500/main.js:2 onclick http://127.0.0.1:5500/main.js:15 EventHandlerNonNull* http://127.0.0.1:5500/main.js:14

<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Alura MIDI</title>

    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600&display=swap" rel="stylesheet">

    <link rel="icon" type="image/png" href="images/bateria.png">
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="css/estilos.css">
</head>
<body>

    <h1>Alura Midi</h1>

    <section class="teclado">
        <button class="tecla tecla_pom">Pom</button>
        <button class="tecla tecla_clap">Clap</button>
        <button class="tecla tecla_tim">Tim</button>

        <button class="tecla tecla_puff">Puff</button>
        <button class="tecla tecla_splash">Splash</button>
        <button class="tecla tecla_toim">Toim</button>

        <button class="tecla tecla_psh">Psh</button>
        <button class="tecla tecla_tic">Tic</button>
        <button class="tecla tecla_tom">Tom</button>
    </section>

    <audio src="sounds/keyq.wav" id="som_tecla_pom"></audio>
    <audio src="sounds/keyw.wav" id="som_tecla_clap"></audio>
    <audio src="sounds/keye.wav" id="som_tecla_tim"></audio>
    <audio src="sounds/keya.wav" id="som_tecla_puff"></audio>
    <audio src="sounds/keys.wav" id="som_tecla_splash"></audio>
    <audio src="sounds/keyd.wav" id="som_tecla_toim"></audio>
    <audio src="sounds/keyz.wav" id="som_tecla_psh"></audio>
    <audio src="sounds/keyx.wav" id="som_tecla_tic"></audio>
    <audio src="sounds/keyc.wav" id="som_tecla_tom"></audio>

    <script src="main.js"></script>
</body>
</html>

JS:

function tocaSom (idElementoAudio) {
    document.querySelector(idElementoAudio).play();
}

const ListaDeTeclas = document.querySelectorAll('.tecla'); 

//para
for (let contador = 0; contador < ListaDeTeclas.length; contador++) {

    const Teclas = ListaDeTeclas[contador];
    const instrumento = Teclas.classList[1];
    const idAudio = `som_${instrumento}`;

    Teclas.onclick = function () {
        tocaSom(idAudio);
    }
}
1 resposta
solução!

Olá, Daivis! Tudo bem?

O erro que você está recebendo indica que o querySelector não está encontrando um elemento com o ID passado como parâmetro. No seu caso, o erro está ocorrendo na linha 2 do arquivo main.js.

Verifique se o ID passado como parâmetro na chamada da função tocaSom está correto e se o elemento com esse ID existe na sua página HTML.

Por exemplo, na linha 14 do seu arquivo main.js, você está passando o ID som_tecla_pom como parâmetro para a função tocaSom. Verifique se existe um elemento com o ID som_tecla_pom na sua página HTML.

Caso não encontre o erro, tente limpar o cache do navegador e reiniciar a página.

Espero ter ajudado e bons estudos!