OfflineAudioContext()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 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 リポジトリーで参照してください(ソースコードも参照してください)。
仕様書
| Specification |
|---|
| Web Audio API> # dom-offlineaudiocontext-offlineaudiocontext> |