OfflineAudioContext()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
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 |
ブラウザーの互換性
BCD tables only load in the browser