5

我正在尝试使用从分析器节点访问 FFT 数据,analyser.getByteFrequencyData(array)但它似乎返回一个空白数组:

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

但是 usinganalyser.getFloatFrequencyData(array)返回一个数据数组:

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

我正在使用如下信号链:

Source-> Analyser-> ScriptProcessor->Context Destination

那么为什么我不能得到字节形式的频率数据呢?

提前致谢。

4

3 回答 3

2

在没有看到更多代码的情况下,我最好的猜测是您将 minDecibels 和 maxDecibels 设置为超出您通过分析仪抽取的数据的范围,因此它被归零。

于 2013-02-03T22:21:14.670 回答
1

你们中的一个人在播放开始之前获得数据的几率是多少,所以还没有什么可读取的?getByteFrequencyData如果是这种情况,请在播放开始后尝试调用。

于 2013-08-03T23:03:40.477 回答
0

检查是否smoothingTimeConstant设置为1. 如果是这样,getFloatFrequencyData总是返回一个零数组。

于 2014-01-04T10:45:49.233 回答