OfflineAudioContext()
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2021年4月以降、すべてのブラウザーで利用可能です。
OfflineAudioContext() コンストラクターは、ウェブオーディオ API の一部で、新しい OfflineAudioContext オブジェクトインスタンスを生成して返します。これは音声出力機器ではなく AudioBuffer に音声を出力することができるものです。
構文
new OfflineAudioContext(options)
new OfflineAudioContext(numberOfChannels, length, sampleRate)
引数
OfflineAudioContext() コンストラクターの引数は BaseAudioContext.createBuffer メソッドに入力する引数と同じものを指定するか、あるいは options オブジェクトにそれらの引数を渡して指定することも可能です。いずれにせよ、個々の引数は同じものです。
numberOfChannels-
整数で、結果の
AudioBufferが持つチャンネル数を指定します。 length-
整数値で、音声コンテキスト用に作成するバッファーのサイズをサンプルフレーム単位(音声データの各チャンネルに対して、音声データの単一のサンプルを格納することができる単位)で指定します。例えば、
sampleRateが 48000Hz で 5 秒間のバッファーは5 * 48000 = 240000サンプルフレームの長さになります。 sampleRate-
リニア音声データのサンプルレート(1 秒あたりのサンプルフレーム数)。すべてのユーザーエージェントは 8000Hz から 96000Hz の範囲に対応していますが、それよりも広い範囲に対応することもあります。最も有益なのは 44100Hz で、これは CD 音声で使用されるサンプルレートです。
注意すべき点は、引数なしで AudioContext コンストラクターを使用して新しい new AudioContext() が作成できるのに対し、 OfflineAudioContext() コンストラクターは AudioBuffer を作成しなければいけないので 3 つの引数が必要になる点です。これは新しい AudioBuffer を BaseAudioContext.createBuffer メソッドで作成したときと全く同じように動作します。詳しくはオーディオバッファー: フレーム、サンプル、チャンネルセクションをご覧ください。
返値
新しい OfflineAudioContext オブジェクトで、関連付けられた AudioBuffer はリクエストされたとおりに構成されます。
通常の AudioContext と同様に、 OfflineAudioContext はイベントの対象となることができます。そのため、このインターフェイスは EventTarget を実装しています。
例
const offlineCtx = new OfflineAudioContext({
numberOfChannels: 2,
length: 44100 * 40,
sampleRate: 44100,
});
const source = offlineCtx.createBufferSource();
// …
動作する例全体は、 offline-audio-context-promise を GitHub リポジトリーで参照してください(ソースコードも参照してください)。
仕様書
| 仕様書 |
|---|
| Web Audio API> # dom-offlineaudiocontext-offlineaudiocontext> |