Web Audio API: 在"once"收集所有音频信息
Web Audio API: Collect all audio informations at "once"
我知道我可以使用 getByteFrequenzyData()
收集当前播放的音频的音频数据,我会取回一个 Uint8Array
。
现在我通过将每个 animationFrame
当前数据推送到数组中来收集一个音频文件的所有数据,例如:
我有一个时长为 20 分钟的音频文件。
然后我在 20 分钟后将所有音频数据放在一个数组中,然后看起来像这样:
var data = [Uint8Array[1024], Uint8Array[1024], Uint8Array[1024], Uint8Array[1024], ... ];
有没有更快的方法来获取所有这些音频数据,这样我就不必等待整整 20 分钟的视频,而几乎是即时获取音频数据?
最好能固定步长接收音频信息,比如50ms左右!
不使用 AudioContext,而是对离线上下文使用 OfflineAudioContext to process the data. This can run much faster than real time. To get consistent data at well defined times, you'll also need to use a browser that implements the recently added suspend and resume 功能,这样您就可以在 well-defined 时间间隔对 getByteFrequencyData 的数据进行采样。
我知道我可以使用 getByteFrequenzyData()
收集当前播放的音频的音频数据,我会取回一个 Uint8Array
。
现在我通过将每个 animationFrame
当前数据推送到数组中来收集一个音频文件的所有数据,例如:
我有一个时长为 20 分钟的音频文件。 然后我在 20 分钟后将所有音频数据放在一个数组中,然后看起来像这样:
var data = [Uint8Array[1024], Uint8Array[1024], Uint8Array[1024], Uint8Array[1024], ... ];
有没有更快的方法来获取所有这些音频数据,这样我就不必等待整整 20 分钟的视频,而几乎是即时获取音频数据?
最好能固定步长接收音频信息,比如50ms左右!
不使用 AudioContext,而是对离线上下文使用 OfflineAudioContext to process the data. This can run much faster than real time. To get consistent data at well defined times, you'll also need to use a browser that implements the recently added suspend and resume 功能,这样您就可以在 well-defined 时间间隔对 getByteFrequencyData 的数据进行采样。