I use hark to detect when user stops speaking, I simply want to return variable res from inside user stream to parent function stop; however I get undefined within navigator scope. TIA
function stop() {
window.AudioContext = window.AudioContext || window.webkitAudioContext;
const context = new AudioContext();
var speaking ;
var options = {};
var stopping_time;
navigator.mediaDevices.getUserMedia({audio: true}).then((stream) => {
const microphone = context.createMediaStreamSource(stream);
var speechEvents = hark(stream, options);
speechEvents.on('speaking', function () {
console.log("speak");
stopping_time = Date.now();
speaking = true;
});
speechEvents.on('stopped_speaking', function () {
console.log("stop");
speaking = false;
stopping_time = Date.now();
setTimeout(pause, 2000);
});
function pause() {
if (Math.abs(Date.now() - stopping_time) >= 1500 && speaking === false) {
console.log("Assume finished answering since 2 seconds have passed");
microphone.mediaStream.getTracks().forEach(function (track) {
track.stop();
});
res = true;
}
}
}); return res;
}