Estou tentando inserir um áudio em um código enquanto ele é executado, mas como o navegador que uso não permite reprodução automática (Safari e Chrome), tentei usar um "botão" no início para reproduzir o áudio, mas ele continua travando. Não sei como criar botões, então estou usando um retângulo e, quando o mouse é pressionado dentro da barreira do retângulo, a variável para iniciar o áudio se torna verdadeira. Este é o meu código:
if(starty = 380){ /*if it’s pressed at a specific time*/
if(startx + startw > mouseX && mouseX > startx){
if(starty + starth > mouseY && mouseY > starty) {
if(mouseIsPressed){
start = true;
}
}
}
}
if (start == true){
startr = 0;
song.play();
}
Mas imaginei que, como o áudio é reproduzido continuamente enquanto start = true, isso acontece muitas vezes e trava.
Tentei adicionar um loop for ao song.play(), mas não funcionou :(
if (start == true){
startr = 0;
for (let i = 0; i < 2; i += 1) { /*hopefully this makes it run only once*/
song.play();
}
}
Mas ainda trava e não sei o que fazer. Além disso, é a primeira vez que faço uma pergunta, então pode ficar um pouco confuso, desculpe. Obrigado!
Basta salvar o estado clicado em uma variável:
botão html:
Javascript: