1
resposta

Não sai o audio também

let listaDeNumerosSorteados = [];
let numeroLimite = 10;
let numeroSecreto = gerarNumeroAleatorio();
let tentativas = 1;
//let titulo = document.querySelector('h1');
//titulo.innerHTML = 'Jogo do Numero Secreto 2.0';

//let paragrafo = document.querySelector('p');
//paragrafo.innerHTML = 'Escolha um numero entre 1 e 10';
//Funcão abaixo é uma versão simplificada das que estão acima. Linha 7 à 13
function exibirTextoNaTela(tag, texto) {
    let campo = document.querySelector(tag);
    campo.innerHTML = texto;
    if ('speechSynthesis' in window) {
        let utterance = new SpeechSynthesisUtterance(texto);
        utterance.lang = 'pt-BR'; 
        utterance.rate = 1.2; 
        window.speechSynthesis.speak(utterance); 
    } else {
        console.log("Web Speech API não suportada neste navegador.");
    }
}

function exibirMensagemInicial(){
    exibirTextoNaTela('h1', 'Jogo do Numero Secreto 2.0');
    exibirTextoNaTela('p', 'Escolha um numero entre 1 e 10');
}
exibirMensagemInicial();

function verificarChute() {
    let chute = document.querySelector('input').value;
    if (chute == numeroSecreto) {
        exibirTextoNaTela ('h1', 'Acertou!');
        let palavraTentativa = tentativas > 1 ? 'Tentativas' : 'Tentativas';
        let mensagemTentativas = `Você descobriu o Numero Secreto com ${tentativas} ${palavraTentativa}`;
        exibirTextoNaTela ('p',mensagemTentativas);
        // Remove um atributo do html pelo java script  document.getElementById('reiniciar').removeAttribute('disabled');
        document.getElementById('reiniciar').removeAttribute('disabled');
    } else {
        if (chute > numeroSecreto){
            exibirTextoNaTela('p', 'O numero secreto é menor');
    } else {
            exibirTextoNaTela ('p', 'O numero secreto é maior.');
    }
    //tentativas = tentativas + 1;
    tentativas++;
    limparCampo();
}
}   
function gerarNumeroAleatorio() {
    let numeroEscolhido = parseInt(Math.random() * numeroLimite + 1) ;   
    let quantidadeDeElementosNaLista = listaDeNumerosSorteados.length;

        if (quantidadeDeElementosNaLista == numeroLimite) {
            listaDeNumerosSorteados = [];
        }

    if (listaDeNumerosSorteados.includes(numeroEscolhido)){
        return gerarNumeroAleatorio();
    } else { 
        listaDeNumerosSorteados.push(numeroEscolhido);
        console.log(listaDeNumerosSorteados);
        return numeroEscolhido;
    }
}

function limparCampo(){
    chute = document.querySelector('input');
    chute.value = '';
}
function reinicarJogo() {
    numeroSecreto = gerarNumeroAleatorio();
    limparCampo();
    tentativas = 1;
    exibirMensagemInicial();
    document.getElementById('reiniciar').setAttribute('disabled',true);
}
<!DOCTYPE html>
<html lang="pt-br">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Chakra+Petch:wght@700&family=Inter:wght@400;700&display=swap"
        rel="stylesheet">
    <link rel="stylesheet" href="style.css">
    <title>JS Game</title>
</head>

<body>

    <div class="container">
        <div class="container__conteudo">
            <div class="container__informacoes">
                <div class="container__texto">
                    <h1></h1>
                    <p class="texto__paragrafo"></p>
                </div>
                <input type="number" min="1" max="10" class="container__input">
                <div class="chute container__botoes">
                    <button onclick="verificarChute()" class="container__botao">Chutar</button>
                    <button onclick="reinicarJogo()" id="reiniciar" class="container__botao" disabled>Novo jogo</button>
                </div>
            </div>
            <img src="./img/ia.png" alt="Uma pessoa olhando para a esquerda" class="container__imagem-pessoa" />
        </div>
    </div>




    <script src="app.js" defer></script>
</body>

</html>
1 resposta

Oi Luiz! Tudo bem?

Primeiro, certifique-se de que o seu navegador suporta a Web Speech API. Essa funcionalidade está disponível em navegadores como Google Chrome e Microsoft Edge. Se você estiver usando um navegador diferente, pode ser que ele não suporte essa API.

Se o navegador for compatível, o problema pode estar relacionado a como o código está sendo executado. Aqui estão algumas dicas para verificar:

  1. Verifique as permissões de áudio do navegador: Certifique-se de que o navegador tem permissão para reproduzir áudio. Você pode verificar isso nas configurações do navegador, geralmente na seção de permissões de site.

  2. Console do navegador: Abra o console do desenvolvedor (geralmente com F12 ou Ctrl+Shift+I) e veja se há alguma mensagem de erro relacionada ao speechSynthesis. Isso pode dar pistas sobre o que está acontecendo.

  3. Teste básico de som: Tente executar um código simples para verificar se o áudio funciona:

    if ('speechSynthesis' in window) {
        let utterance = new SpeechSynthesisUtterance('Teste de áudio');
        utterance.lang = 'pt-BR';
        utterance.rate = 1.2;
        window.speechSynthesis.speak(utterance);
    } else {
        console.log("Web Speech API não suportada neste navegador.");
    }
    

    Execute este código no console do navegador para ver se o áudio é reproduzido. Se funcionar, o problema pode estar em outra parte do código.

  4. Verifique se o áudio está sendo bloqueado: Alguns navegadores podem bloquear a reprodução automática de áudio. Tente interagir com a página (como clicar em um botão) antes de executar a função exibirTextoNaTela.

Espero que essas dicas ajudem a resolver o problema. Boa sorte com seu projeto!

Bons estudos!

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