Oi Lucas, tudo certo?
Que bom que está gostando do JavaScript na prática! Fico feliz que você tenha essa curiosidade para ir além da aula, isso nos leva a aprender ainda mais.
Bom, uma maneira bem simples de evitar esse "delay" seria aplicar um currentTime = 0
na sua função tocaSom
, da seguinte maneira:
function tocaSom (idElementoAudio) {
const elemento = document.querySelector(idElementoAudio);
elemento.currentTime = 0;
elemento.play();
}
Esse currentTime
dentro da função permite que ao clicarmos (onclick
) em algum botão do Alura Midi, antes de darmos o play()
no áudio, parar a reprodução e voltar para o início do tempo caso aquele áudio já tenha sido clicado e esteja sendo reproduzido no momento. Isso pode ser feito atribuindo o valor “0” ao atributo currentTime
, que armazena a posição(tempo) em que o áudio está sendo executado. Assim, a cada clique, o áudio volta a ser reproduzido do início, sem o delay.
Espero ter esclarecido sua dúvida. Se tiver mais alguma, me coloco à disposição!
Um abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!