BaseAudioContext

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.

BaseAudioContextウェブオーディオ API のインターフェイスで、 AudioContextOfflineAudioContext で表されるオンラインとオフラインのオーディオ処理グラフの基本定義として動作します。 BaseAudioContext を直接使用することはありません。これらの 2 つの継承されたインターフェイスのいずれかを介して、その機能を使用することになります。

BaseAudioContext はイベントのターゲットとなることができるので、 EventTarget インターフェイスを実装しています。

EventTarget BaseAudioContext

インスタンスプロパティ

BaseAudioContext.audioWorklet 読取専用 安全なコンテキスト用

AudioWorklet オブジェクトを返します。これは AudioNode を JavaScript コードで作成および管理するために使用することができ、 AudioWorkletProcessor インターフェイスを実装していて、バックグラウンドで実行して音声データを処理することができます。

BaseAudioContext.currentTime 読取専用

スケジューリングに使用される秒単位で増加するハードウェア時間を表す倍精度浮動小数点値を返します。 0 から始まります。

BaseAudioContext.destination 読取専用

このコンテキストですべての音声の最終的な出力先を表す AudioDestinationNode を返します。 オーディオレンダリングデバイスと考えることができます。

BaseAudioContext.listener 読取専用

三次元空間化に使用される AudioListener オブジェクトを返します。

BaseAudioContext.sampleRate 読取専用

このコンテキスト内のすべてのノードで使用されるサンプリングレート(サンプル/秒)を単精度浮動小数点値で返します。 AudioContext のサンプリングレートを変更することはできません。

BaseAudioContext.state 読取専用

現在の AudioContext の状態を返します。

インスタンスメソッド

EventTarget インターフェイスから継承しているメソッドもあります。

BaseAudioContext.createAnalyser()

AnalyserNode を作成します。これは音声の時間と周波数データを公開し、データの可視化などに利用できます。

BaseAudioContext.createBiquadFilter()

BiquadFilterNode を作成します。これはハイパス、ローパス、バンドパスなどの一般的なフィルター型として設定可能な 2 次フィルターを表します。

BaseAudioContext.createBuffer()

新しい空の AudioBuffer オブジェクトを作成します。これにデータを入力して AudioBufferSourceNode で再生できます。

BaseAudioContext.createBufferSource()

AudioBufferSourceNode を作成します。これは AudioBuffer オブジェクトに含まれる音声データを再生または操作するために使用することができます。 AudioBufferAudioContext.createBuffer() によって生成されるか、オーディオトラックのデコードに成功すると AudioContext.decodeAudioData() によって返されます。

BaseAudioContext.createConstantSource()

ConstantSourceNode オブジェクトを作成します。これはすべてのサンプルが同じ値を持つモノラル(1 チャンネル)音声信号を連続的に出力する音声ソースです。

BaseAudioContext.createChannelMerger()

ChannelMergerNode を作成します。これは複数の音声ストリームのチャンネルを 1 つの音声ストリームに結合するために使用します。

BaseAudioContext.createChannelSplitter()

ChannelSplitterNode を作成します。これは音声ストリームの個々のチャンネルにアクセスし、それらを個別に処理するために使用されます。

BaseAudioContext.createConvolver()

ConvolverNode を作成します。これはオーディオグラフにコンボリューション効果(残響効果など)を適用するために使用されます。

BaseAudioContext.createDelay()

DelayNode を作成します。これは入力される音声信号を一定時間遅延させるために使用します。このノードは、ウェブオーディオ API グラフでフィードバックループを作成する際にも便利です。

BaseAudioContext.createDynamicsCompressor()

DynamicsCompressorNode を作成します。これは音声信号に音響圧縮をかけるために使用します。

BaseAudioContext.createGain()

GainNode を作成します。これはオーディオグラフの全体的な音量を制御するために使用することができます。

BaseAudioContext.createIIRFilter()

IIRFilterNode を作成します。これは複数の異なる一般的なフィルター種別として設定可能な二次フィルターを表します。

BaseAudioContext.createOscillator()

OscillatorNode を作成します。これは周期的な波形を表すソースです。基本的には音程を生成します。

BaseAudioContext.createPanner()

PannerNode を作成します。これは入力されるオーディオストリームを三次元空間で空間化するために使用されます。

BaseAudioContext.createPeriodicWave()

PeriodicWave を作成します。これは、OscillatorNode の出力を決定するために使用できる、周期的な波形を定義するために使用します。

BaseAudioContext.createScriptProcessor() 非推奨;

ScriptProcessorNode を作成します。これは JavaScript で直接音声処理を行うために使用します。

BaseAudioContext.createStereoPanner()

StereoPannerNode を作成します。これは音声ソースにステレオパニングを適用するために使用することができます。

BaseAudioContext.createWaveShaper()

非線形歪み効果を実装するために使用される WaveShaperNode を作成します。

BaseAudioContext.decodeAudioData()

ArrayBuffer に格納された音声ファイルのデータを非同期にデコードします。この場合、 ArrayBuffer は通常 XMLHttpRequestresponse 属性に responseType を設定した後に読み込まれます。このメソッドは完全なファイルに対してのみ動作し、音声ファイルの断片に対しては動作しません。

イベント

statechange

状態変化メソッド(AudioContext.suspend, AudioContext.resume, AudioContext.close)のいずれかが呼び出されたことによって AudioContext の状態が変化したときに発生します。

基本的なオーディオコンテキストの宣言:

js
const audioContext = new AudioContext();

クロスブラウザー対応の変化形:

js
const AudioContext = window.AudioContext || window.webkitAudioContext;
const audioContext = new AudioContext();

const oscillatorNode = audioContext.createOscillator();
const gainNode = audioContext.createGain();
const finish = audioContext.destination;

仕様書

Specification
Web Audio API
# BaseAudioContext

ブラウザーの互換性

BCD tables only load in the browser

関連情報