OfflineAudioContext()

OfflineAudioContext() コンストラクターは、ウェブオーディオ API の一部で、新しい OfflineAudioContext オブジェクトインスタンスを生成して返します。これは音声出力機器ではなく AudioBuffer に音声を出力することができるものです。

構文

js
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 つの引数が必要になる点です。これは新しい AudioBufferBaseAudioContext.createBuffer メソッドで作成したときと全く同じように動作します。詳しくはオーディオバッファー: フレーム、サンプル、チャンネルセクションをご覧ください。

返値

新しい OfflineAudioContext オブジェクトで、関連付けられた AudioBuffer はリクエストされたとおりに構成されます。

通常の AudioContext と同様に、 OfflineAudioContext はイベントの対象となることができます。そのため、このインターフェイスは EventTarget を実装しています。

js
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