AudioContext: suspend() method
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
Parameters
Return value
A Promise
that resolves with undefined
. The promise is rejected if the context has already been closed.
Examples
The following snippet is taken from our AudioContext states demo (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 = () => {
if (audioCtx.state === "running") {
audioCtx.suspend().then(() => {
susresBtn.textContent = "Resume context";
});
} else if (audioCtx.state === "suspended") {
audioCtx.resume().then(() => {
susresBtn.textContent = "Suspend context";
});
}
};
Specifications
Browser compatibility
|
Desktop |
Mobile |
|
Chrome |
Edge |
Firefox |
Internet Explorer |
Opera |
Safari |
WebView Android |
Chrome Android |
Firefox for Android |
Opera Android |
Safari on IOS |
Samsung Internet |
suspend |
41 |
14 |
40 |
No |
28 |
9 |
41 |
41 |
40 |
28 |
9 |
4.0 |
See also