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

Ao invés do Responsive Voice de ler

Olá, caríssimos!

Pelo que vi, meu código está exatamente igual ao da videoaula, mas pergunto: porque será que, ao iniciar o jogo, o Responsive Voice lê o parãmetro de texto 'Jogo do número secreto', enquanto na videoaula ele lê 'Escolha um número entre 1 e 10'. Ou ainda: porque não lê os dois textos, uma vez que ambos são parâmetros do tipo declarado como "texto"?

function exibirTextoNaTela(tag, texto) {
let campo = document.querySelector(tag);
campo.innerHTML = texto;
responsiveVoice.speak(texto, 'Brazilian Portuguese Female', {rate:1.2});
}

function exibirMensagemInicial() {
exibirTextoNaTela('h1', 'Jogo do número secreto');
exibirTextoNaTela('p', 'Escolha um número entre 1 e 10');
}

Desde já, agradeço a atenção: obrigado!
Bruno

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
2 respostas
solução!

Olá, Bruno! Como vai?

Pelo que você descreveu, parece que a função exibirTextoNaTela está sendo chamada duas vezes, uma para o texto "Jogo do número secreto" e outra para "Escolha um número entre 1 e 10". No entanto, o responsiveVoice.speak está sendo chamado para ambos os textos, mas você mencionou que ele só está lendo o primeiro.

Uma possível razão para isso pode ser o tempo de execução ou a forma como o navegador está processando as chamadas de speak. O responsiveVoice.speak é assíncrono, o que significa que ele pode não terminar de processar o primeiro texto antes de iniciar o segundo, dependendo de como o navegador está lidando com a fila de execução.

Para tentar garantir que ambos os textos sejam lidos, você pode adicionar um pequeno atraso entre as chamadas de speak, usando setTimeout. Aqui está um exemplo de como você pode fazer isso:

function exibirMensagemInicial() {
    exibirTextoNaTela('h1', 'Jogo do número secreto');
    setTimeout(() => {
        exibirTextoNaTela('p', 'Escolha um número entre 1 e 10');
    }, 2000); // 2000 milissegundos de atraso
}

No exemplo acima, o segundo texto será lido após um atraso de 2 segundos. Você pode ajustar o tempo de atraso conforme necessário para garantir que ambos os textos sejam lidos de forma clara.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Excelente explicação!

Muito obrigado mesmo, Armano!
Entendi o funcionamento e consegui ajustar o tempo adequado para a execução de forma a ler os dois textos.

Abraços e ótimo trabalho!
Bruno