AudioContext

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.

AudioContext インターフェイスは AudioNode によって表現され、互いにリンクする音声モジュールから作られた音声処理グラフを表します。

音声コンテキストは、それが格納するノードの作成と、音声処理(デコード)の実行の両方を制御します。何らかの処理を行う前に AudioContext を作成する必要があります。毎回新しいものを初期化するのではなく、 1 つの AudioContext を作成し、それを再利用することを推奨します。また、 1 つの AudioContext を複数の異なるオーディオソースに使用し、同時にパイプラインを使用しても問題ありません。

EventTarget BaseAudioContext AudioContext

コンストラクター

AudioContext()

AudioContext オブジェクトを新しく作成し、返します。

インスタンスプロパティ

親インターフェイスである BaseAudioContext から継承したプロパティもあります。

AudioContext.baseLatency 読取専用

AudioContextAudioDestinationNode から音声サブシステムに音声を渡す際に発生する処理遅延の秒数を返します。

AudioContext.outputLatency 読取専用

現在の音声コンテキストの出力レイテンシーの見積を返します。

AudioContext.sinkId 読取専用 Experimental

現在の出力音声機器のシンク ID を返します。

インスタンスメソッド

親インターフェイスである BaseAudioContext から継承したメソッドもあります。

AudioContext.close()

任意のシステム音声リソースをリリースするために、音声コンテキストを閉じます。

AudioContext.createMediaElementSource()

HTMLMediaElement と関連付けられた MediaElementAudioSourceNode を生成します。これは <video> 要素もしくは <audio> 要素からの再生や操作をするために使うことができます。

AudioContext.createMediaStreamSource()

ローカルのコンピューターのマイクもしくは他のソースから来る音声ストリームを表現している MediaStream と関連付けられた MediaStreamAudioSourceNode を生成します。

AudioContext.createMediaStreamDestination()

ローカルファイルに保存されたものかその他のコンピューターに送信された音声ストリームを表す MediaStream と関連付けられた MediaStreamAudioDestinationNode を生成します。

AudioContext.createMediaStreamTrackSource()

メディアストリームトラックを表す MediaStream と関連づけられた MediaStreamTrackAudioSourceNode を生成します。

AudioContext.getOutputTimestamp()

2 つの関連づけられたコンテキストの音声ストリームの位置の値を含む新しい AudioTimestamp オブジェクトを返します。

AudioContext.resume()

前回中断/一時停止した音声コンテキストの時間の進行を再開します。

AudioContext.setSinkId() Experimental

この AudioContext 用の出力音声機器を設定します。

AudioContext.suspend()

一時的に音声ハードウェアアクセスを停止し、プロセスの CPU/バッテリー使用を減らすために、音声コンテキストの時間の進行を中断します。

イベント

sinkchange Experimental

出力音声デバイスが変更された (そしてその結果 AudioContext.sinkId が変更された) 時発火します。

基本的な音声コンテキストの作成方法です。

js
const audioCtx = new AudioContext();

const oscillatorNode = audioCtx.createOscillator();
const gainNode = audioCtx.createGain();
const finish = audioCtx.destination;
// etc.

仕様書

Specification
Web Audio API
# AudioContext

ブラウザーの互換性

BCD tables only load in the browser

参考