2013-02-03 57 views
4

我試圖使用analyser.getByteFrequencyData(array)分析器節點訪問FFT數據,但它似乎返回一個空數組:網絡音頻API分析節點getByteFrequencyData返回空數組

var array = new Uint8Array(analyser.frequencyBinCount); 
analyser.getByteFrequencyData(array); 

但是使用analyser.getFloatFrequencyData(array)返回數據的數組:

var array = new Float32Array(analyser.frequencyBinCount); 
analyser.getFloatFrequencyData(array); 

我使用的信號鏈如下:

Source - >Analyser - >ScriptProcessor - >Context Destination

那麼爲什麼我不能以字節形式獲取頻率數據呢?

在此先感謝。

回答

1

如果沒有看到更多的代碼,我最好的猜測是你的minDecibels和maxDecibels設置的範圍超過了你通過分析器抽取的數據,所以它已經被清零了。

+0

這樣做。我如何知道設置minDecimals/maxDecimals的值?謝謝 – RobotEyes

+0

OP:這是否真的是正確的答案,因爲在中,您是否嘗試調整最小/最大Decibal值並開始爲您工作? –

+0

此外,對於像我這樣的人,絆倒這個S/O問題,這裏有一個有用的鏈接(http://docs.webplatform.org/wiki/apis/webaudio/AnalyserNode) –

1

在播放開始之前你們中的一個人獲得了數據的機率是多少,所以沒有什麼可讀的呢?如果可能出現這種情況,請在播放開始後嘗試撥打getByteFrequencyData

0

檢查smoothingTimeConstant是否設置爲1。如果是這樣,getFloatFrequencyData總是返回一個零數組。