Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

[Dúvida] Dúvida sobre o som.

Olá, pessoal. Bom dia, boa tarde ou boa noite!! Primeiro quero parabenizar o conteúdo do Curso -** JavaScript para Web: Crie páginas dinâmicas**. Achei hiper bacana criar uma plataforma do instrumento musical a Bateria. Arranho na bateria e unir o estudo de Java com a bateria, putz, foi demais. A minha dúvida é:

  1. Ao clicar no instrumento qualquer, percebo que no segundo click o som não sai. Parece que tem um "delay" entre o toque e o som?
  2. Onde eu posso coletar mais sons para usar no projeto "Alura Midi"?

Desejo à todos um Feliz Natal atrasado.

7 respostas

Fala, Guilherme! Tudo bom com você?

Bacana demais, cara, eu imagino que seja uma experiência ainda mais maneira desenvolver um projeto assim que tenha uma afinidade maior contigo. E essa questão do som aí, cara, eu acredito que esse delay seja por causa do tamanho do áudio. No momento do segundo clique, por exemplo, pode ser que o áudio que foi reproduzido após o primeiro clique ainda esteja terminando de ser reproduzido, tanto que tem áudios mais rápidos que você consegue reproduzir praticamente em seguida. Agora, quanto a essa questão de onde arranjar mais sons para adicionar no projeto, pelo que eu vi, os áudios vieram da '99 Sounds', nesse link aqui: https://99sounds.org/drum-samples/. Eu não cheguei a olhar fundo o site, mas imagino que nele você consiga encontrar mais opções para fazer o download e importar pro seu projeto.

Espero ter ajudado, meu amigo, bons estudos e abraços!

Olá Iury! Tudo bem, obrigado.

Entendi. Como seria uma solução para esse problema? Uma opção, seria ter arquivos com o mesmo tempo? Por uma questão de curiosidade. Eu agradeço pela indicação do 99 Sound.

Grato, amigo.

Aí, nesse caso, eu imagino que a solução poderia sim ser essa, de ter os arquivos com o mesmo tempo de reprodução, ou implementar um código em que o áudio para de reproduzir ao clicar e inicie novamente. Dessa forma eu imagino que seja até mesmo a mais eficiente, visto que o tamanho do áudio já não interessa mais, afinal vai encerrar e começar de novo de qualquer forma. Depois, de curiosidade, vou tentar implementar algo desse tipo, pra ver como ficaria e se consiguiria hahaha.

Tamo junto, meu amigo!

solução!

Fala meu amigo, beleza? Como o áudio tem 1 segundo, quando a gente clica 2x seguidas ele não toca porque ainda não passou o 1 segundo. Para fazer com que você toque repetidamente sempre que clicar, basta adicionar uma propriedade na primeira função chamada "currentTime", esta propriedade controla o tempo do áudio. Como queremos tocar sempre que clicar, vamos colocar "currentTime = 0" para que sempre que clicarmos em uma tecla ela reseta seu temporizador para 0 e toque de forma sequencial. Eu acho que é isso que você queria, espero ter ajuado, vou deixar aqui a função abaixo de como ficou.

function tocaSom(seletorAudio) {
  const elemento = document.querySelector(seletorAudio);

  if (elemento === null) {
    alert("Elemento não encontrado");
  } else {
   elemento.currentTime = 0;
    elemento.play();
  }
}

Felipe, bom dia! Sim, era exatamente isso! Muito obrigado.

Valeu meu amigo! tem como colocar como resolvido só pra ganhar uns pontos kkk, e nois!

Marcado, meu amigo! Tmj