webaudio的AnalyserNode的FFT值超出范围

时间:2014-10-07 17:07:09

标签: javascript fft web-audio

我正在尝试使用Web-Audio的分析器节点,并不断从中获得奇怪的结果。

代码:

var self = this;
var bufferSize = 512;
var spectrum = new Float32Array(bufferSize/2);

self.analyser = audioContext.createAnalyser();
self.analyser.fftSize = bufferSize;
self.analyser.smoothingTimeConstant = 0;
self.analyser.minDecibels = -120;
self.analyser.maxDecibels = 0;
self.analyser.getFloatFrequencyData(spectrum);
source.connect(self.analyser);

即使我明确设置了最大和最小分贝的值,我仍然得到小于-120的值,例如-180。

此外,当我console.log分析器时,我发现值确实发生了变化,但FFT仍然给出了低于预期的值。

我正在使用立体声mp3文件进行测试,这可能是个问题吗?

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

最小和最大分贝仅影响getByteFrequencyData值,而不影响getFloatFrequencyData值。 “用于转换为无符号字节值的FFT分析数据的缩放范围中的最小/最大功率值。”