title | short-title | slug | l10n | ||
---|---|---|---|---|---|
AudioContext: suspend() メソッド |
suspend() |
Web/API/AudioContext/suspend |
|
{{ APIRef("Web Audio API") }}
suspend()
は {{ domxref("AudioContext") }} インターフェイスのメソッドで、音声コンテキストの時間の流れを一時停止します。音声ハードウェアへのアクセスを一時的に停止し、処理に必要だった CPU/バッテリーの使用を減らすことが出来ます。これは、アプリケーションがしばらくの間音声を扱わない間に、音声ハードウェアに電源を供給しないようにしたいときに便利です。
{{domxref("OfflineAudioContext")}} でこのメソッドを呼び出すと、 INVALID_STATE_ERR
例外が発生します。
suspend()
なし。
{{jsxref("Promise")}} であり、これは {{jsxref('undefined')}} で解決します。コンテキストが既に閉じている場合、プロミスは失敗します。
次のスニペットは AudioContext states デモ(ライブ実行)から取ったものです。suspend/resume ボタンをクリックすると、 {{domxref("BaseAudioContext/state", "AudioContext.state")}} を問い合わせます。もし running
ならば、 suspend()
が呼び出されます。 suspended
ならば、 {{domxref("AudioContext/resume", "resume()")}} が呼び出されます。両方ともプロミスに成功するとボタンのラベルが適したものに更新されます。
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";
});
}
};
{{Specifications}}
{{Compat}}