| <html> |
| <body> |
| <audio id="audio" autoplay></audio> |
| |
| <script> |
| |
| var speechRecognition = null; |
| var recorder = null; |
| var shouldHandleEndEvent = false; |
| |
| function setShouldHandleEndEvent(shouldHandleEvent) |
| { |
| shouldHandleEndEvent = shouldHandleEvent; |
| } |
| |
| function start() |
| { |
| if (!speechRecognition) |
| speechRecognition = new webkitSpeechRecognition(); |
| speechRecognition.continuous = true; |
| speechRecognition.onstart = () => window.webkit.messageHandlers.testHandler.postMessage("Start"); |
| speechRecognition.onerror = (event) => window.webkit.messageHandlers.testHandler.postMessage("Error: " + event.error + " - " + event.message); |
| if (shouldHandleEndEvent) |
| speechRecognition.onend = () => window.webkit.messageHandlers.testHandler.postMessage("End"); |
| |
| speechRecognition.start(); |
| } |
| |
| function stop() |
| { |
| if (speechRecognition) |
| speechRecognition.stop(); |
| } |
| |
| function gotMedia(stream) { |
| try { |
| var tracks = stream.getAudioTracks(); |
| tracks[0].onmute = () => window.webkit.messageHandlers.testHandler.postMessage("Audio Mute"); |
| var audio = document.getElementById('audio'); |
| audio.srcObject = stream; |
| audio.play(); |
| } catch(e) { |
| window.webkit.messageHandlers.testHandler.postMessage("gotMedia Error : " + e); |
| } |
| } |
| |
| function startAudio() |
| { |
| navigator.mediaDevices.getUserMedia({ audio: true }) |
| .then(gotMedia) |
| .catch(e => { window.webkit.messageHandlers.testHandler.postMessage("startAudio Error: " + e); }); |
| } |
| |
| </script> |
| |
| </body> |
| </html> |