2014-10-29 48 views
0

我想用一堆振盪器生成一個聲音並記錄該聲音以供將來播放。目前我的設置的簡化版本如下所示:生成聲音並在WebAudio中錄製

Oscillator -> Gain -> ScriptProcessor* -> Destination   (for recording) 

BufferSource -> Destination*         (for playback) 

*標記實際的最終節點。

ScriptProcessor節點是那裏只是爲了記錄無論它傳遞給它 - 它沒有通過任何的目標,這讓我納悶:爲什麼我需要的一切連接到目標或否則它不會工作?有沒有比使用ScriptProcessor節點更好的方式來記錄數據?如果我沒有連接的東西目的地那麼我可以加快聲音的產生?對於10秒的正弦波,我必須等待10秒才能產生。我能否比真實聽覺時間更快地產生它,並將其放慢速度?

回答

2

您想使用OfflineAudioContext。您可以使用與您的實際上下文相同的sampleRate創建它,並創建所需的緩衝區長度,在其中創建節點,告訴它開始渲染,並在完成後爲您提供一個可用於在您的現場直播的AudioBuffer背景上下文。