Tem uma hora que li sua publicação e tentei implementar no meu código.
Fiz assim: no HTML, pus mais um botão para ligar ou desligar o ResponsiveVoice, com o nome da função que criei em seguida.
<button onclick="ativarTTS()" id="tts" class="container__botao">Ler para mim</button>
No JavaScript, criei uma variável booliana e a função que liga e desliga o text-to-speech e troca o texto do botão conforme ele é clicado.
let TTS = false;
function ativarTTS() {
if (TTS == false) {
TTS = true;
document.getElementById("tts").innerHTML = "Parar de ler";
} else {
TTS = false;
document.getElementById("tts").innerHTML = "Ler para mim";
}
}
E antes de invocar o responsiveVoice.speak
na função exibirTextoNaTela()
, criei uma condição para que só fale se aquela variável booliana for verdadeira.
function exibirTextoNaTela(tag, texto) {
let elemento = document.querySelector(tag);
elemento.innerHTML = texto;
if (TTS == true)
responsiveVoice.speak(texto, "Brazilian Portuguese Female", {pitch:0.60, rate:1.38});
}
Deu supercerto, mas apanhei até fazer o botão funcionar! Obrigado pela inspiração!