3
我正在嘗試使用Web-Audio的分析器節點,並不斷從它得到奇怪的結果。webaudio的AnalyserNode的FFT值超出範圍
代碼:
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。另外,當我使用分析儀時,我發現這些值實際上是變化的,但FFT仍然給我的值比預期的要低。
我正在使用立體聲mp3文件來測試它,這可能是一個問題嗎?
任何想法?
從[documentation](https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode):AnalyserNode.minDecibels 是一個double值,表示在縮放範圍內的最小功率值FFT分析數據,用於轉換爲無符號的字節/浮點值 - 基本上,這指定了使用getFloatFrequencyData()或getByteFrequencyData()時結果範圍的最小值。 – nevos 2014-10-08 08:01:37
這是Mozilla文檔中的錯誤。 spec(http://webaudio.github.io/web-audio-api/#widl-AnalyserNode-maxDecibels)明確指出「用於轉換爲無符號字節值」,沒有關於浮點值的任何內容。 – cwilso 2014-10-08 20:47:23
我向Mozilla文檔頁面提交了一個修復程序。 – cwilso 2014-10-08 20:49:56