Web Audio API分析器节点getByteFrequencyData返回空白数组

Web Audio API analyser node getByteFrequencyData returning blank array

本文关键字:返回 空白 数组 getByteFrequencyData 节点 Audio API 分析器 Web      更新时间:2023-09-26

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

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

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

提前谢谢。

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

你们中的一个人在播放开始前得到数据,所以还没有什么可读的可能性有多大?如果是这种情况,请尝试在播放开始后调用getByteFrequencyData

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