Así que básicamente estoy tratando de controlar mi sitio con mi voz. Actualmente puedo hacer un cambio de número con la entrada de audio entrante. Con ese número, quiero decidir si mi sitio tiene que desplazarse rápido o lento. Este número, de hecho, cambia constantemente de alrededor de 1 a 200. Ahora estoy atascado en obtener la función jQuery animate () para ajustar constantemente su velocidad de desplazamiento. Porque ahora parece que solo mantiene la velocidad del primer número que obtiene.
Este es mi código JavaScript que se supone que desplaza todo el cuerpo de la página:
let actualNumb = Numb(function(numb) { if (numb >= 1 ) { $("html, body").animate( { scrollTop: $(document).height() }, numb * 1000 ); } }) // Function to get audioinput and convert it to a number between 0 and 100: navigator.mediaDevices.getUserMedia({ audio: true, video: false }) .then(function(stream) { // If audio object is created through promise, create audio-processor: audioContext = new AudioContext(); analyser = audioContext.createAnalyser(); microphone = audioContext.createMediaStreamSource(stream); javascriptNode = audioContext.createScriptProcessor(2048, 1, 1); analyser.smoothingTimeConstant = 0.8; analyser.fftSize = 1024; microphone.connect(analyser); analyser.connect(javascriptNode); javascriptNode.connect(audioContext.destination); // Function that gets processed every time it gets some audio input: javascriptNode.onaudioprocess = function() { console.log("Audio"); var array = new Uint8Array(analyser.frequencyBinCount); analyser.getByteFrequencyData(array); var values = 0; var length = array.length; for (var i = 0; i < length; i++) { values += (array[i]); } var average = Math.round((values / length)); console.log(average); actualNumb.setNumb(average); } }).catch(function(err) {console.log(err)}); // Create function to observe the number that is constantly changing: function Numb(callback) { let numb = 0; return { getNumb: function() { return numb; }, setNumb: function(x) { numb = x; callback(numb); } }; }