2016-01-09 200 views
1

我知道我可以用getByteFrequenzyData()收集當前播放音頻的音頻數據,我將收回Uint8Array。 現在我收集所有數據的一個音頻文件,通過推動每個animationFrame陣列中的當前數據,例如:網絡音頻API:以「一次」收集所有音頻信息

我有一個持續20分鐘的音頻文件。 然後,我有20分鐘後,在一個陣列,然後看起來有點像一個這一切的音頻數據:

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

是否有快速的方式來獲得所有這些音頻數據,所以我不必等待完整20分鐘的視頻,並獲得音頻數據幾乎即時?

以50ms左右的固定步長接收音頻信息會很好!

回答

2

而不是使用AudioContext,使用OfflineAudioContext來處理數據。這可以比實時更快地運行。爲了在定義良好的時間獲得一致的數據,您還需要使用瀏覽器實現離線上下文最近添加的suspendresume功能,以便您可以以明確的時間間隔對getByteFrequencyData數據進行採樣。