max*_*pre 5 audio-recording web-audio-api
所以我觉得我理解getFloatFrequencyData得很好。如果getFloatFrequencyData返回一个包含 1024 个值的数组,每个值代表一个频率仓/范围的音量。在采样率为 44.1 的 1024 个值的情况下,每个值将代表大约 20 赫兹频率范围的音量。
现在呢getFloatTimeDomainData?假设我有 2048 个值,每个值代表什么?
与理解网络音频中的 getByteTimeDomainData 和 getByteFrequencyData 不同。或者至少,这个问题的答案没有回答我的。
使用获得的Float32ArraygetFloatTimeDomainData将包含一个样本值数组,每个值定义采样位置的幅度,通常在 的域中[-1, 1]。样本位置是唯一分布的,获得的数据本质上相当于原始PCM。
对于正弦波,它将在以下近似曲线中产生逐渐变化的连续值:
0 ... 0.7 ... 1.0 ... 0.7 ... 0 ... -0.7 ... -1.0 ... -0.7 ... 0 ...
Run Code Online (Sandbox Code Playgroud)
将其视为一系列共同定义音频波形状的后续值;如果您要在画布上可视化获得的值,使用样本值作为y坐标(幅度)和随后增加的x坐标值(时间),您将获得一个示波器,例如:

请注意此正弦波形如何与上面的示例值相关联。以下是您可以对这些数据执行的一些示例操作,以便更好地理解:
如果您将每个值乘以 2,您会将音量放大 100%(双倍音量)
如果你用 0 替换每个值,你会得到沉默
如果您跳过每一秒的值,您将获得 100% 音高的音频(双倍播放速度)
| 归档时间: |
|
| 查看次数: |
1371 次 |
| 最近记录: |