3
respostas

[Dúvida] navegador continua pedindo permissão

Toda vez que falo um número, ao invés de o microfone continuar aberto, o chrome pede permissão novamente para usar meu microfone, só daí posso falar o próximo número. Fui tentar jogar com meu irmão e nós dois ficamos bem frustrados em ter que permitir toda vez que tentávamos. Meu arquivo reconhecimentoDeVoz.js está assim:

const elementoChute = document.getElementById('chute');

window.SpeechRecognition = window.speechRecognition || window.webkitSpeechRecognition;

const recognition = new SpeechRecognition();
recognition.lang = 'pt-Br';
recognition.start();

recognition.addEventListener('result', onSpeak);

function onSpeak(e){
    chute = e.results[0][0].transcript;
    exibeChuteNaTela(chute);
    verificaSeOChutePossuiUmValorValido(chute);
}
function exibeChuteNaTela(chute){
    elementoChute.innerHTML = `
     <div class="guess">Você disse</div>
     <span class="box">${chute}</span>
    `
}

recognition.addEventListener('end', ()=> recognition.start())
3 respostas

Olá Nicolas, tudo bem?

Pelo que entendi, o navegador está pedindo permissão toda vez que você fala um número, certo? Isso pode ser um pouco frustrante mesmo. Mas, infelizmente, essa é uma medida de segurança do navegador para garantir que o microfone esteja sendo utilizado apenas com a sua permissão.

Uma forma de contornar esse problema é pedir ao usuário para permitir o uso do microfone logo no início do jogo, ao invés de pedir a cada número falado. Para isso, você pode adicionar um botão "Iniciar jogo" que, ao ser clicado, solicita a permissão do microfone e começa a escutar os números.

Outra opção é utilizar um servidor para processar a fala, ao invés de fazer isso diretamente no navegador. Dessa forma, você pode pedir a permissão do microfone apenas uma vez e, em seguida, enviar os áudios para o servidor para serem processados.

Espero ter ajudado e bons estudos!

Não consegui criar um botão para solicitar a permissão logo no início, mas eu percebi que usando a extensão live server do vs code não tive problemas, apenas quando abro direto pelo arquivo html

Entendi, legal. Você pode pensar em uma solução enquanto utiliza o Live Server.

Isso de ficar pedindo permissão sempre é ruim demais, atrapalha muito kk