jQuery Прокрутите страницу до нижней части на основе аудиовхода

#javascript #html #jquery #audio #jquery-animate

Вопрос:

Поэтому я в основном пытаюсь управлять своим сайтом с помощью голоса. В настоящее время я могу изменить номер с помощью входящего аудиовхода. С этим номером я хочу решить, должен ли мой сайт прокручиваться быстро или медленно. Это число на самом деле постоянно меняется примерно с 1-200. Теперь я застрял на том, чтобы заставить функцию jQuery animate() постоянно регулировать скорость прокрутки. Потому что теперь кажется, что он просто поддерживает скорость первого числа, которое он получает.

Это мой код JavaScript, который должен прокручивать весь текст страницы:

 let actualNumb = Numb(function(numb) {  if (numb gt;= 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 lt; 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); }  }; }  

Комментарии:

1. Добро пожаловать в Stack Overflow. Я не вижу, где numb это определено. повторное использование numb также очень неоднозначно, и я подозреваю, что вы не получаете ожидаемых результатов из-за путаницы вокруг фактического значения numb .