gpt4 book ai didi

javascript - 如何运行一个对一段时间内的数字求和并将总和记录在变量中的函数?

转载 作者:行者123 更新时间:2023-12-03 02:07:48 24 4
gpt4 key购买 nike

我正在尝试创建一个函数来测量五分钟内麦克风输入电平的平均值,然后将计算总和存储在变量中。

目前,间隔设置为每五分钟运行一次该函数,但仅计算最后一个输入值的平均值,而不是一段时间内的值。

function measureLevel() {

average = 0;
for (counter = 0; counter < 75000; counter++) {
average += absoluteLevel / 75000;
}

averageAbsoluteLevel = Math.abs(average);
averageDbLevel = Tone.gainToDb(averageAbsoluteLevel) * scale + offset;

console.log('Counter reached. Average level is: ' + averageDbLevel);

}
window.setInterval(measureLevel, 300000);

提前致谢。

最佳答案

but only calculates the average of the single last input value, instead of the values over time.

您每次都将平均值设置为0,您需要记住两件事

  • 麦克风值总和
  • 此计时器已运行的次数

最后将麦克风总和值除以该计时器运行的次数。尝试一下

(function(){ //create a IIFE so that micSum and timerCounter is localized and don't pollute global namespace
var micSum = 0;
var timerCounter = 0;
window.setInterval(function(){
var absoluteLevel = Math.abs( Tone.Meter.getValue() );
micSum += Tone.gainToDb(absoluteLevel ) * scale + offset; //keep adding to the sum
timerCounter++;
console.log('Counter reached. Average level is: ' + (micSum/timerCounter) ); //take the average by dividing micSum with counter.
}, 300000);
})(); //set the timer

关于javascript - 如何运行一个对一段时间内的数字求和并将总和记录在变量中的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49729754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com