PHP Classes

File: library/js/script.js

Recommend this page to a friend!
  Classes of Rodrigo Faustino   Materialize PHP   library/js/script.js   Download  
File: library/js/script.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Materialize PHP
Manage user records in pages using Materialize CSS
Author: By
Last change:
Date: 3 days ago
Size: 4,029 bytes
 

Contents

Class file image Download
// Fazemos que o código só funcione apos o carregamento completo da pagina window.addEventListener('DOMContentLoaded', function(){ // Instanciamos o nosso botão var btn_gravacao = document.querySelector('#btn_gravar_audio'); // Crio a variavel que amarzenara a transcrição do audio var transcricao_audio = ''; // Seto o valor false para a variavel esta_gravando para fazermos a validação se iniciou a gravação var esta_gravando = false; // Verificamos se o navegador tem suporte ao Speech API if(window.SpeechRecognition || window.webkitSpeechRecognition){ // Como não sabemos qual biblioteca usada pelo navegador // Atribuimos a api retornada pelo navegador var speech_api = window.SpeechRecognition || window.webkitSpeechRecognition; // Criamos um novo objeto com a API Speech var recebe_audio = new speech_api(); // Defino se a gravação sera continua ou não // Caso deixamos ela definida como false a gravação tera um tempo estimado // de 4 a 5 segundos recebe_audio.continuous = true; // Especifico se o resultado final pode ser alterado ou não pela compreenção da api recebe_audio.interimResults = true; // Especifico o idioma utilizado pelo usuario recebe_audio.lang = "pt-BR"; // uso o metodo onstart para setar a minha variavel esta_gravando como true // e modificar o texto do botão recebe_audio.onstart = function(){ esta_gravando = true; btn_gravacao.innerHTML = "<i class='fa fa-microphone-slash' style='color:red; padding: 12px 20px;'></i>"; }; // uso o metodo onend para setar a minha variavel esta_gravando como false // e modificar o texto do botão recebe_audio.onend = function(){ esta_gravando = false; btn_gravacao.innerHTML = "<i class='fa fa-microphone' style='color:red; padding: 12px 20px;'></i>"; }; recebe_audio.onerror = function(event){ console.log(event.error); }; // Com o metodo onresult posso capturar a transcrição do resultado recebe_audio.onresult = function(event){ // Defino a minha variavel interim_transcript como vazia var interim_transcript = ''; // Utilizo o for para contatenar os resultados da transcrição for(var i = event.resultIndex; i < event.results.length; i++){ // verifico se o parametro isFinal esta setado como true com isso identico se é o final captura if(event.results[i].isFinal){ // Contateno o resultado final da transcrição transcricao_audio = event.results[i][0].transcript; }else{ // caso ainda não seja o resultado final vou contatenado os resultados obtidos interim_transcript += event.results[i][0].transcript; } // Verifico qual das variaveis não esta vazia e atribuo ela no variavel resultado var resultado=''; resultado = transcricao_audio || interim_transcript; // Escrevo o resultado no campo da textarea document.getElementById('data').value = resultado; } }; // Capturamos a ação do click no botão e iniciamos a gravação ou a paramos // dependendo da variavel de controle esta_gravando btn_gravacao.addEventListener('click', function(e){ // Verifico se esta gravando ou não if(esta_gravando){ // Se estiver gravando mando parar a gravação recebe_audio.stop(); var button = document.getElementById("send-btn"); button.click(); // Dou um retun para sair da função return; } // Caso não esteja capturando o audio inicio a transcrição document.getElementById('data').value = ''; recebe_audio.start(); }, false); }else{ // Caso não o navegador não apresente suporte ao Speech API apresentamos a seguinte mensagem console.log('navegador não apresenta suporte a web speech api'); // alert('Este navegador não apresenta suporte para essa funcionalidade ainda'); } }, false);