The suspend()
method of the AudioContext
Interface suspends the progression of time in the audio context, temporarily halting audio hardware access and reducing CPU/battery usage in the process — this is useful if you want an application to power down the audio hardware when it will not be using an audio context for a while.
This method will cause an INVALID_STATE_ERR
exception to be thrown if called on an OfflineAudioContext
.
Syntax
var audioCtx = new AudioContext();
audioCtx.suspend().then(function() { ... });
Returns
A Promise
that resolves with void. The promise is rejected if the context has already been closed.
Example
The following snippet is taken from our AudioContext states demo ([[../../../../../../../mdn.github.io/webaudio-examples/audiocontext-states/index|see it running live]].) When the suspend/resume button is clicked, the AudioContext.state
is queried — if it is running
, suspend()
is called; if it is suspended
, resume()
is called. In each case, the text label of the button is updated as appropriate once the promise resolves.
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';
});
}
}
Specifications
Specification | Status | Comment |
Web Audio APIThe definition of 'close()' in that specification. | Working Draft |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
suspend
|
Chrome
Full support 43 |
Edge
Full support 14 |
Firefox
Full support 40 |
IE
No support No |
Opera
Full support Yes |
Safari
Full support Yes |
WebView Android
Full support 43 |
Chrome Android
Full support 43 |
Firefox Android
Full support 40 |
Opera Android
Full support Yes |
Safari iOS
Full support Yes |
Samsung Internet Android
Full support 4.0 |
Legend
- Full support
- Full support
- No support
- No support
See also
AudioContext.suspend() by Mozilla Contributors is licensed under CC-BY-SA 2.5.