Web/API/AudioContext

From Get docs


The AudioContext interface represents an audio-processing graph built from audio modules linked together, each represented by an AudioNode. An audio context controls both the creation of the nodes it contains and the execution of the audio processing, or decoding. You need to create an AudioContext before you do anything else, as everything happens inside a context. It's recommended to create one AudioContext and reuse it instead of initializing a new one each time, and it's OK to use a single AudioContext for several different audio source and pipeline concurrently.

Constructor

AudioContext()
Creates and returns a new AudioContext object.

Properties

Also inherits properties from its parent interface, BaseAudioContext.

AudioContext.baseLatency Read only '
Returns the number of seconds of processing latency incurred by the AudioContext passing the audio from the AudioDestinationNode to the audio subsystem.
AudioContext.outputLatency Read only '
Returns an estimation of the output latency of the current audio context.

Methods

Also inherits methods from its parent interface, BaseAudioContext.

AudioContext.close()
Closes the audio context, releasing any system audio resources that it uses.
AudioContext.createMediaElementSource()
Creates a MediaElementAudioSourceNode associated with an HTMLMediaElement. This can be used to play and manipulate audio from <video> or <audio> elements.
AudioContext.createMediaStreamSource()
Creates a MediaStreamAudioSourceNode associated with a MediaStream representing an audio stream which may come from the local computer microphone or other sources.
AudioContext.createMediaStreamDestination()
Creates a MediaStreamAudioDestinationNode associated with a MediaStream representing an audio stream which may be stored in a local file or sent to another computer.
AudioContext.createMediaStreamTrackSource()
Creates a MediaStreamTrackAudioSourceNode associated with a MediaStream representing an media stream track.
AudioContext.getOutputTimestamp()
Returns a new AudioTimestamp object containing two audio timestamp values relating to the current audio context.
AudioContext.resume()
Resumes the progression of time in an audio context that has previously been suspended/paused.
AudioContext.suspend()
Suspends the progression of time in the audio context, temporarily halting audio hardware access and reducing CPU/battery usage in the process.

Examples

Basic audio context declaration:

var audioCtx = new AudioContext();

Cross browser variant:

var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();

var oscillatorNode = audioCtx.createOscillator();
var gainNode = audioCtx.createGain();
var finish = audioCtx.destination;
// etc.

Specifications

Specification Status Comment
Web Audio APIThe definition of 'AudioContext' in that specification. Working Draft

Browser compatibility

Update compatibility data on GitHub

Desktop Mobile
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet
AudioContext

Chrome Full support 35


Full support 35


No support 14 — 57

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Edge

Full support 12

Firefox

Full support 25

IE

No support No

Opera Full support 22


Full support 22


No support 15 — 44

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Safari Full support 6

Prefixed'

Full support 6

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

WebView Android

Full support Yes

Chrome Android Full support 35


Full support 35


No support 18 — 57

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Firefox Android

Full support 26

Opera Android Full support 22


Full support 22


No support 14 — 43

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Safari iOS Full support 6

Prefixed'

Full support 6

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Samsung Internet Android Full support 3.0


Full support 3.0


No support 1.0 — 7.0

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

AudioContext() constructor

Chrome Full support 35

Notes'

Full support 35

Notes'

Notes' Prior to Chrome 66, each tab is limited to 6 audio contexts in Chrome; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome. Notes' If latencyHint isn't valid, Chrome throws a TypeError exception. See Non-standard exceptions in Chrome for details. No support 14 — 57

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Edge

Full support 12

Firefox

Full support 25

IE

No support No

Opera Full support 22

Notes'

Full support 22

Notes'

Notes' Prior to Opera 53, each tab is limited to 6 audio contexts in Opera; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome. Notes' If latencyHint isn't valid, Opera throws a TypeError exception. See Non-standard exceptions in Chrome for details. No support 15 — 44

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Safari Full support 6.1

Prefixed'

Full support 6.1

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

WebView Android Full support 37

Notes'

Full support 37

Notes'

Notes' Prior to WebView 66, each tab is limited to 6 audio contexts in WebView; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome. Notes' If latencyHint isn't valid, WebView throws a TypeError exception. See Non-standard exceptions in Chrome for details. No support ≤37 — 44

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Chrome Android Full support 35

Notes'

Full support 35

Notes'

Notes' Prior to Chrome 66, each tab is limited to 6 audio contexts in Chrome; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome. Notes' If latencyHint isn't valid, Chrome throws a TypeError exception. See Non-standard exceptions in Chrome for details. No support 18 — 57

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Firefox Android

Full support 26

Opera Android Full support 22

Notes'

Full support 22

Notes'

Notes' Prior to Opera Android 47, each tab is limited to 6 audio contexts in Opera; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome. Notes' If latencyHint isn't valid, Opera throws a TypeError exception. See Non-standard exceptions in Chrome for details. No support 14 — 43

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Safari iOS Full support 6.1

Prefixed'

Full support 6.1

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

Samsung Internet Android Full support 3.0

Notes'

Full support 3.0

Notes'

Notes' Prior to Samsung Internet 9.0, each tab is limited to 6 audio contexts in Samsung Internet; attempting to create more will throw a DOMException. For details see Per-tab audio context limitation in Chrome. Notes' If latencyHint isn't valid, Samsung Internet throws a TypeError exception. See Non-standard exceptions in Chrome for details. No support 1.0 — 7.0

Prefixed'

Prefixed' Implemented with the vendor prefix: webkit

baseLatency

Experimental'

Chrome

Full support 58

Edge

Full support 79

Firefox

Full support 70

IE

No support No

Opera

Full support 45

Safari

No support No

WebView Android

Full support 58

Chrome Android

Full support 58

Firefox Android

No support No

Opera Android

Full support 43

Safari iOS

No support No

Samsung Internet Android

Full support 7.0

close Chrome

Full support 42

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

createMediaElementSource Chrome

Full support 14

Edge

Full support 12

Firefox

Full support 25

IE

No support No

Opera

Full support 15

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support 18

Firefox Android

Full support 26

Opera Android

Full support 14

Safari iOS

Full support Yes

Samsung Internet Android

Full support 1.0

createMediaStreamDestination Chrome

Full support 14

Edge

Full support 79

Firefox

Full support 25

IE

No support No

Opera

Full support 15

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support 18

Firefox Android

Full support 26

Opera Android

Full support 14

Safari iOS

Full support Yes

Samsung Internet Android

Full support 1.0

createMediaStreamSource Chrome

Full support 14

Edge

Full support 12

Firefox

Full support 25

IE

No support No

Opera

Full support 15

Safari

Full support 6

WebView Android

Full support Yes

Chrome Android

Full support 18

Firefox Android

Full support 26

Opera Android

Full support 14

Safari iOS

Full support Yes

Samsung Internet Android

Full support 1.0

createMediaStreamTrackSource Chrome

No support No

Edge

No support No

Firefox Full support 68

Notes'

Full support 68

Notes'

Notes' Firefox 68 implements the updated standard's definition of the "first" audio track; now the first track is the one whose ID comes first lexicographically.

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android Full support 68

Notes'

Full support 68

Notes'

Notes' Firefox 68 implements the updated standard's definition of the "first" audio track; now the first track is the one whose ID comes first lexicographically.

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

getOutputTimestamp

Experimental'

Chrome

Full support 57

Edge

Full support 79

Firefox

Full support 70

IE

No support No

Opera

Full support 44

Safari

No support No

WebView Android

Full support 57

Chrome Android

Full support 57

Firefox Android

No support No

Opera Android

Full support 43

Safari iOS

No support No

Samsung Internet Android

Full support 7.0

outputLatency Chrome

No support No

Edge

No support No

Firefox

Full support 70

IE

No support No

Opera

No support No

Safari

No support No

WebView Android

No support No

Chrome Android

No support No

Firefox Android

No support No

Opera Android

No support No

Safari iOS

No support No

Samsung Internet Android

No support No

resume Chrome

Full support 41

Edge

Full support 14

Firefox

Full support 40

IE

No support No

Opera

Full support Yes

Safari

Full support Yes

WebView Android

Full support Yes

Chrome Android

Full support 41

Firefox Android

Full support Yes

Opera Android

Full support Yes

Safari iOS

Full support Yes

Samsung Internet Android

Full support 4.0

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
Experimental. Expect behavior to change in the future.'
Experimental. Expect behavior to change in the future.
See implementation notes.'
See implementation notes.
Requires a vendor prefix or different name for use.'
Requires a vendor prefix or different name for use.


See also