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 2021年4月.
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> |
ブラウザーの互換性
Loading…