无论我在哪里看,这两种方法的文档都是非常通用的。我想知道我从每个方法得到的返回数组中看到了什么。
对于getbyteimedomandata,每次传递覆盖的时间段是什么?我相信大多数示波器每次通过都能覆盖32毫秒的时间跨度。这也包括在这里吗?对于实际元素值本身,范围似乎是0-255。这相当于-1-+1伏吗?
对于getByteFrequencyData,覆盖的频率基于采样率,因此每个索引都是实际频率,但是实际元素值本身又如何呢?是否存在与返回数组中返回的值相等的db范围?
最佳答案
getByteTimeDomainData
(和更新的getFloatTimeDomainData
)返回您请求的大小数组-itsfrequencyBinCount
,该数组计算为请求的fftSize
的一半。当然,该数组是在sampleRate
上显示的当前AudioContext
处,因此如果它是默认的2048fftSize
,frequencyBinCount
将是1024,如果您的设备以44.1KHz运行,这将相当于大约23ms的数据。
字节值的范围是0-255,是的,映射到-1到+1,所以128是零。(不是伏特,而是全量程无单位值。)
如果使用getFloatFrequencyData
,则返回的值以db为单位;如果使用字节版本,则根据minDecibels
/maxDecibels
映射值(请参见minDecibels
/maxDecibels
说明)。