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

Ativar e desativar o ResponsiveVoice

Boa tarde, fiquei em dúvida referente ao uso do responsiveVoice, devido ao fato dele ficar ativo sempre. Como faria para que ele ativasse apenas em caso do usuario precisar. Teria que fazer um botão no HTML e criar uma função no js para ativar e desativar?

2 respostas
solução!

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!

Obrigado amigo!