AudioContext: suspend() メソッド

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.

suspend()AudioContext インターフェイスのメソッドで、音声コンテキストの時間の流れを一時停止します。音声ハードウェアへのアクセスを一時的に停止し、処理に必要だった CPU/バッテリーの使用を減らすことが出来ます。これは、アプリケーションがしばらくの間音声を扱わない間に、音声ハードウェアに電源を供給しないようにしたいときに便利です。

OfflineAudioContext でこのメソッドを呼び出すと、 INVALID_STATE_ERR 例外が発生します。

構文

js
suspend()

引数

なし。

返値

Promise であり、これは undefined で解決します。コンテキストが既に閉じている場合、プロミスは失敗します。

次のスニペットは AudioContext states デモライブ実行)から取ったものです。suspend/resume ボタンをクリックすると、 AudioContext.state を問い合わせます。もし running ならば、 suspend() が呼び出されます。 suspended ならば、 resume() が呼び出されます。両方ともプロミスに成功するとボタンのラベルが適したものに更新されます。

js
susresBtn.onclick = () => {
  if (audioCtx.state === "running") {
    audioCtx.suspend().then(() => {
      susresBtn.textContent = "Resume context";
    });
  } else if (audioCtx.state === "suspended") {
    audioCtx.resume().then(() => {
      susresBtn.textContent = "Suspend context";
    });
  }
};

仕様書

Specification
Web Audio API
# dom-audiocontext-suspend

ブラウザーの互換性

BCD tables only load in the browser

関連情報