--- title: AudioContext.suspend() slug: Web/API/AudioContext/suspend translation_of: Web/API/AudioContext/suspend ---
{{ APIRef("Web Audio API") }}
suspend()
メソッドは、オーディオコンテキストの時間の流れを一時停止します。音声ハードウェアへのアクセスを一時的に停止し、処理に必要だったCPU/バッテリーの使用を減らすことが出来ます。これは、アプリケーションがしばらくの間オーディオを扱わない間に、音声ハードウェアに電源を供給しないようにしたいときに便利です。
{{domxref("OfflineAudioContext")}}でこのメソッドを呼ぶとINVALID_STATE_ERR
例外が発生します。
var audioCtx = new AudioContext(); audioCtx.suspend().then(function() { ... });
voidで完了する{{jsxref("Promise")}}。コンテキストが既に閉じている場合、プロミスは失敗します。
次のスニペットはAudioContext states デモ(すぐ実行)から取ったものです。suspend/resumeボタンをクリックすると、{{domxref("AudioContext.state")}}を問い合わせます—もしrunning
ならば、suspend()
が呼ばれます。suspended
ならば、{{domxref("resume")}}が呼ばれます。両方ともプロミスに成功するとボタンのラベルが適したものに更新されます。
susresBtn.onclick = function() { if(audioCtx.state === 'running') { audioCtx.suspend().then(function() { susresBtn.textContent = 'Resume context'; }); } else if(audioCtx.state === 'suspended') { audioCtx.resume().then(function() { susresBtn.textContent = 'Suspend context'; }); } }
Specification | Status | Comment |
---|---|---|
{{SpecName('Web Audio API', '#widl-AudioContext-suspend-Promise-void', 'close()')}} | {{Spec2('Web Audio API')}} |
{{Compat("api.AudioContext.suspend")}}