Nos bénévoles n'ont pas encore traduit cet article en Français. Inscrivez-vous et aidez-nous à réaliser cette tâche !
Vous pouvez également lire cet article en English (US).

The AudioContext() constructor creates a new AudioContext object which represents an audio-processing graph, built from audio modules linked together, each represented by an AudioNode.

Syntax

var audioCtx = new AudioContext();
var audioCtx = new AudioContext(options);

Parameters

options Optional
An object based on the AudioContextOptions dictionary that contains zero or more optional properties to configure the new context. Available properties are as follows:
latencyHint Optional
The type of playback that the context will be used for, as a value from the AudioContextLatencyCategory enum or a double-precision floating-point value indicating the preferred maximum latency of the context in seconds. The user agent may or may not choose to meet this request; check the value of AudioContext.baseLatency to determine the true latency after creating the context.
sampleRate Optional
The sampleRate to be used by the AudioContext, specified in samples per second. The value may be any value supported by AudioBuffer. If not specified, the preferred sample rate for the context's output device is used by default.

Return value

The newly constructed AudioContext instance.

Exceptions

NotSupportedError
The specified sampleRate isn't supported by the context.

Usage notes

The specification doesn't go into a lot of detail about things like how many audio contexts a user agent should support, or minimum or maximum latency requirements (if any), so these details can vary from browser to browser. Be sure to check the values if they matter to you.

In particular, the specification doesn't indicate a maximum or minimum number of audio contexts that must be able to be open at the same time, so this is left up to the browser implementations to decide.

Google Chrome

Per-tab audio context limitation in Chrome

Google Chrome only supports up to six audio contexts per tab at a time, because each context spawns a new thread. This limitation is intended to help protect overhead problems that could arise if too many audio contexts are created (along with their threads). If you try to create more than six contexts, AudioContext() will throw a DOMException with the message "The number of hardware contexts provided (6) is greater than or equal to the maximum bound (6)".

You should try to reuse existing contexts rather than creating a new one for each sound you play, and be sure to call close() on each context as you finish using it. Once close()'s Promise is resolved, it's safe to create a new context.

Non-standard exceptions in Chrome

If the value of the latencyHint  property isn't valid, Chrome throws a TypeError exception with the message "The provided value '...' is not a valid enum value of type AudioContextLatencyCategory".

Example

This example creates a new AudioContext for interactive audio (optimizing for latency) and a sample rate of 44.1kHz.

var AudioContext = window.AudioContext || window.webkitAudioContext;

var audioCtx = new AudioContext({
  latencyHint: 'interactive',
  sampleRate: 44100,
});

Specifications

Specification Status Comment
Web Audio API
The definition of 'AudioContext()' in that specification.
Working Draft Initial definition.

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidEdge MobileFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
Basic supportChrome Full support 55
Notes
Full support 55
Notes
Notes 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.
Edge Full support YesFirefox Full support 25IE No support NoOpera Full support 42Safari Full support Yes
Prefixed
Full support Yes
Prefixed
Prefixed Implemented with the vendor prefix: webkit
WebView Android Full support 55Chrome Android Full support 55
Notes
Full support 55
Notes
Notes 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.
Edge Mobile ? Firefox Android Full support 25Opera Android Full support 42Safari iOS ? Samsung Internet Android Full support 6.0
latencyHint option
Experimental
Chrome Full support 60Edge No support NoFirefox No support NoIE No support NoOpera Full support 47Safari ? WebView Android Full support 60Chrome Android Full support 60Edge Mobile ? Firefox Android No support NoOpera Android Full support 47Safari iOS ? Samsung Internet Android No support No
sampleRate option
Experimental
Chrome No support No
Notes
No support No
Notes
Notes See issue 432248 for Chrome support.
Edge No support NoFirefox No support NoIE No support NoOpera No support NoSafari ? WebView Android ? Chrome Android ? Edge Mobile ? Firefox Android ? Opera Android ? Safari iOS ? Samsung Internet Android No support No

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
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

Étiquettes et contributeurs liés au document

Dernière mise à jour par : Sheppy,