Web Audio API:收集所有音频信息"一次"

时间:2016-01-09 20:23:20

标签: javascript html5 audio web-audio

我知道我可以使用getByteFrequenzyData()收集当前播放音频的音频数据,然后我会返回Uint8Array。 现在我通过推送每个animationFrame数组中的当前数据来收集一个音频文件的所有数据,例如:

我有一个持续时间为20分钟的音频文件。 然后我在20分钟后在一个数组中获得所有音频数据,然后看起来像这样:

var data = [Uint8Array[1024], Uint8Array[1024], Uint8Array[1024], Uint8Array[1024], ... ];

是否有更快的方法来获取所有这些音频数据,因此我不必等待视频的整整20分钟,并且几乎立即获得音频数据?

以50ms左右的固定步骤接收音频信息会很好!

1 个答案:

答案 0 :(得分:2)

使用OfflineAudioContext处理数据,而不是使用AudioContext。这比实时运行得快得多。要在明确定义的时间获得一致的数据,您还需要使用一个浏览器,为离线上下文实现最近添加的suspendresume功能,以便您可以对getByteFrequencyData的数据进行采样。定义的时间间隔。