Opa Luis, como vai?
Ótima pergunta.
Para pausarmos todos os sons podemos criar utilizar a função .pause()
, podendo ser usada para pausar vídeos e aúdios.
- Primeiramente criamos uma variável local chamada
audioAtual
, ela vai ser responsável por armazenar o elemento de áudio atualmente reproduzido, atribuiremos por enquanto o valor “null
" indicando que nenhum som está sendo reproduzido atualmente:
let audioAtual = null;
- Na nossa função de tocaSom, iremos adicionar um novo
if
que será responsável por pausar o áudio caso já haja um áudio sendo tocado. Verificando sempre que um novo som é reproduzido se já outro tocando:
if (audioAtual != null) {
audioAtual.pause();
}
Por fim, quando um som é reproduzido o valor da variável é atualizado com o elemento de áudio correspondente:
if (elemento != null && elemento.localName === 'audio') {
if (audioAtual != null) {
audioAtual.pause();
}
elemento.play();
audioAtual = elemento;
} else {
console.log('Elemento não encontrado ou seletor inválido');
}
Prontinho!
Se for de seu interesse entender mais sobre o pause()
, vou estar deixando, logo abaixo a documentação da mesma:
Caso tenha mais dúvidas ou problemas com relação a este tópico, estarei à disposição para ajudá-lo. Grande abraço!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.