AnalyserNode的getFloatFrequencyData vs getFloatTimeDomainData
所以我认为我很了解getFloatFrequencyData
。如果getFloatFrequencyData
返回一个包含1024个值的数组,则每个值代表一个频点/范围的音量。在采样率为44.1的1024个值的情况下,每个值将表示大约20赫兹的频率范围的音量。AnalyserNode的getFloatFrequencyData vs getFloatTimeDomainData
现在怎么办getFloatTimeDomainData
?假设我有2048个值,每个值代表什么?
与understanding getByteTimeDomainData and getByteFrequencyData in web audio不一样。或者至少,这个问题的答案不回答我的问题。
的Float32Array使用getFloatTimeDomainData
将包含样本值的阵列,每个值在所采样的位置限定所述振幅,通常在[-1, 1]
域获得。样本位置是唯一分布的,所获得的数据本质上相当于原始的PCM。
对于正弦波,这将产生以下近似曲线之间逐渐改变的连续值:
0 ... 0.7 ... 1.0 ... 0.7 ... 0 ... -0.7 ... -1.0 ... -0.7 ... 0 ...
认为它为一系列后续值,它们一起限定了形状音频波的;如果你是可视化的,也就是说,一个帆布获得的值,使用样本值y
坐标(幅度)和x
坐标(时间),随后增加值,你会得到一个oscilloscope,如:
请注意该正弦波形如何与上述示例值相关联。下面是一些例子操作,您可以在这个数据做才能更好地理解:
如果您是通过2乘每个值,则可以通过将100%(双卷)放大音量
如果你用0来替换每一个值,你会得到沉默
如果你跳过每第二个值,你会得到一个100%仰音频(双播放速度)
getFloatTimeDomainData从音频流 - 即原始音频数据返回PCM数据的样本。
准确地说,每个值代表什么?频率数据值表示频率范围的音量。时域数据表示y的x? – maximedupre