<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>
