AudioContext: close() メソッド

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.

close()AudioContext インターフェイスのメソッドで、音声コンテキストを閉じて使っていたシステムの音声リソースを全て解放します。

この関数は、他の参照も同様に解放されない限り、 AudioContext が生成したオブジェクトは自動的には解放しません。しかし、これは音声リソースを強制的に解放します。よって、音声コンテキストの更なる生成と使用はできなくなり、音声コンテキストの時間の流れは止まり、音声データの処理は停止します。 AudioContext の生成をブロックするリソースがすべて解放されたとき、返された Promise が解決します。このメソッドは OfflineAudioContext で呼ばれたとき INVALID_STATE_ERR 例外が発生します。

構文

js
close()

引数

なし。

返値

undefined で解決する Promise です。

次のスニペットは AudioContext states デモすぐ実行)から取ったものです。stop ボタンをクリックすると、 close() が呼び出されます。プロミスに成功すると、リセットされ最初の状態に戻ります。

js
stopBtn.onclick = () => {
  audioCtx.close().then(() => {
    startBtn.removeAttribute("disabled");
    susresBtn.setAttribute("disabled", "disabled");
    stopBtn.setAttribute("disabled", "disabled");
  });
};

仕様書

Specification
Web Audio API
# dom-audiocontext-close

ブラウザーの互換性

BCD tables only load in the browser

関連情報