8

私は Web Audio API のドキュメントとチュートリアルをチェックしてきましたが、この問題に対処する方法を静かに理解していません。

XMLHttpRequest を介していくつかの wav ファイルをロードし、バッファソースを作成するとします。再生がいつ開始されるかを正確にスケジュールできることはわかっています。しかし、それらを再生するのではなく、バッファに保存してスケジュールしたい場合はどうすればよいでしょうか。

実際の例: ドラムをスケジュールし、ミックス全体を wav にエクスポートする (RecorderJS などを使用して録音せずに) シンプルなシーケンサーを作成したいと考えています。アイデア、ライブラリはありますか?

4

1 に答える 1

5

このようなことを少ししただけです。

基本的に、オフライン コンテキストを作成する必要があります。

var offline = new webkitOfflineAudioContext(numChannels, lengthInSamples, sampleRate)

この新しいコンテキストを使用して、すべての BufferSources を再作成する必要があります。

var newBufferSource = offline.createBufferSource();
newBufferSource.buffer = someAudioBuffer;
newBufferSource.connect(offline.destination);

次に、再生をスケジュールします。

newBufferSource.start(offline.currentTime + 10);

次に、オフライン レンダリング用のイベントにバインドしcompleteます。

offline.onComplete = function( ev ){
  doSomething(ev.renderedBuffer);
}

次に、「レンダリング」を開始します。

offline.startRendering();

を手に入れたらev.renderedBuffer、それを使って好きなことをすることができます。私のアプリには、最終的に自分で作成した WAV エンコーダーがありますが、Recorder.js を変更して同じことを非常に簡単に行うことができます。

注意点:webkitOfflineAudioContextは現時点では Chrome のみです。興味がある場合は、次のリンクを参照してください: OfflineAudioContext

于 2013-06-07T01:23:02.073 に答える