1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
<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>
|