AudioContext
Baseline
Widely available
*
Cette fonctionnalité est bien établie et fonctionne sur de nombreux appareils et versions de navigateurs. Elle est disponible sur tous les navigateurs depuis avril 2021.
* Certaines parties de cette fonctionnalité peuvent bénéficier de prise en charge variables.
L'interface AudioContext représente un graphe de traitement audio fait de modules audio reliés entre eux, chaque module correspondant à un AudioNode. Un contexte audio contrôle à la fois la création des nœuds qu'il contient et l'exécution du traitement audio, ou du décodage. On commence toujours par créer un contexte audio, et tout ce qui va se passer ensuite se situera dans ce contexte.
Un contexte audio peut être la cible d'événements, par conséquent il implémente l'interface EventTarget.
Constructeur
AudioContext()-
Crée et retourne un nouvel objet
AudioContext.
Propriétés
AudioContext.currentTimeLecture seule-
Renvoie un double flottant, qui représente un temps en secondes en augmentation continue, utilisé pour situer dans le temps. Il commence à
0. AudioContext.destinationLecture seule-
Retourne un
AudioDestinationNodereprésentant la destination finale de tous les fichiers audio dans un contexte. On peut le considérer comme un dispositif de rendu audio.
AudioContext.listenerLecture seule-
Renvoie l'objet
AudioListener, utilisé pour la spatialisation 3D.
AudioContext.sampleRateLecture seule-
Renvoie un nombre flottant représentant la fréquence d'échantillonnage (échantillons par seconde) utilisée par tous les nœuds dans ce contexte.La fréquence d'échantillonnage d'un contexte audio ne peut pas être modifiée.
AudioContext.stateLecture seule-
Renvoie l'état actuel du contexte audio.
AudioContext.mozAudioChannelTypeNon standard Lecture seule-
Sur Firefox OS, utilisé pour renvoyer la piste audio dans laquelle sera jouée le son qui sera lancé dans le contexte audio.
Event handlers
AudioContext.onstatechange-
Un gestionnaire d'évènement déclenché par un évènement du type
statechange. Cela a lieu quand l'état du contexte audio change, en raison de l'appel des méthodes de changement d'état (AudioContext.suspend,AudioContext.resume, ouAudioContext.close.)
Méthodes
Met également en œuvre des méthodes de l'interface EventTarget.
AudioContext.close()-
Supprime le contexte audio, et libère toutes les ressources audio système qu'il utilisait.
AudioContext.createBuffer()-
Crée un nouvel objet
AudioBuffervide, auquel on pourra assigner des données et que l'on pourra jouer via unAudioBufferSourceNode AudioContext.createBufferSource()-
Crée un objet
AudioBufferSourceNode, qui peut être utilisé pour jouer et manipuler des données audio contenues dans un objetAudioBuffer. LesAudioBuffers sont créés avec la fonctionAudioContext.createBufferou retournés par la fonctionAudioContext.decodeAudioDataquand elle décode une piste audio avec succès. AudioContext.createMediaElementSource()-
Crée un objet
MediaElementAudioSourceNodeassocié àHTMLMediaElement. Il peut être utilisé pour manipuler le son d'éléments<video>ou<audio>. AudioContext.createMediaStreamSource()-
Crée un objet
MediaStreamAudioSourceNodeassocié à unMediaStreamcorrespondant à un flux audio, qui peut provenir du microphone de l'ordinateur local ou d'autres sources. AudioContext.createMediaStreamDestination()-
Crée un objet
MediaStreamAudioDestinationNodeassocié à unMediaStreamcorrespondant à un flux audio, qui peut être stocké dans un fichier local ou envoyé à un autre ordinateur. AudioContext.createScriptProcessor()-
Crée un objet
ScriptProcessorNodequi sert à faire du traitement audio directement avec JavaScript. AudioContext.createStereoPanner()-
Crée un objet
StereoPannerNodequi permet d'appliquer une panoramique sonore à une source audio. AudioContext.createAnalyser()-
Crée un objet
AnalyserNodequi expose les données de temps et de fréquence, et peut être utilisé pour créer des visualisations de données.
AudioContext.createBiquadFilter()-
Crée un objet
BiquadFilterNode, qui représente un filtre de deuxième niveau, qui combine différents types de filtres de base : fréquences hautes, fréquences basses, passe-bande, etc.
AudioContext.createChannelMerger()-
Crée un objet
ChannelMergerNodequi permet de rassembler les canaux de différents flux audio en un seul flux. AudioContext.createChannelSplitter()-
Crée un objet
ChannelSplitterNodeutilisé pour accéder aux différents canaux d'un même flux audio et les traiter séparément. AudioContext.createConvolver()-
Crée un objet
ConvolverNode, qui permet d'appliquer des effets de convolution à un graphe audio, par exemple un effet de réverb. AudioContext.createDelay()-
Crée un objet
DelayNode, utilisé pour retarder le signal audio entrant d'un certain temps. Il est également AudioContext.createDynamicsCompressor()-
Crée un objet
DynamicsCompressorNodequi permet d'appliquer une compression sur un signal audio. AudioContext.createGain()-
Crée un objet
GainNodequi permet de controller le niveau sonore global d'un graphe audio. AudioContext.createIIRFilter()-
Crée un objet
IIRFilterNode, qui représente un filtre de second ordre configurable comme différents types de filtres communs. AudioContext.createOscillator()-
Crée un objet
OscillatorNodequi représente une onde périodique. Il génère simplement un son. AudioContext.createPanner()-
Crée un objet
PannerNodeutilisé pour spatialiser une source audio entrante dans un espace 3D. AudioContext.createPeriodicWave()-
Crée un objet
PeriodicWave, utilisé pour définir une onde périodique qui peut être utilisée pour contrôler la sortie d'unOscillatorNode. AudioContext.createWaveShaper()-
Crée un objet
WaveShaperNode, qui permet d'implémenter des effets de distorsion non linéaires. AudioContext.createAudioWorker()-
Crée un objet
AudioWorkerNode, qui permet d'interagir avec un thread web worker afin de générer, traiter, ou analyser le son directement. Ajouté à la spec le 29 août 2014, mais encore implémenté par aucun des navigateurs à ce jour. AudioContext.decodeAudioData()-
Décode de façon asynchrone les données d'un fichier audio contenues dans un objet
ArrayBuffer. Dans ce cas, le ArrayBuffer est en général chargé depuis un attribut de réponseXMLHttpRequestquand l'attributresponseTypeestarraybuffer. Cette méthode ne fonctionne que sur des fichiers complets, pas sur des fragments de fichiers. AudioContext.resume()-
Reprend le défilement du temps dans un contexte audio où il a précédemment été suspendu.
AudioContext.suspend()-
Suspend le défilement du temps dans un contexte audio, empêchant de façon temporaire l'accès au hardware audio, et réduisant par là l'utilisation du CPU et de la batterie.
Méthodes obsolètes
AudioContext.createJavaScriptNode()-
Crée un objet
JavaScriptNode, utilisé pour un traitement audio directement en JavaScript. Cette méthode est obsolète, et a été remplacée parAudioContext.createScriptProcessor(). AudioContext.createWaveTable()-
Crée un objet
WaveTableNode, utilisé pour définir une onde audio périodique. Cette méthode est obsolète, et a été remplacée parAudioContext.createPeriodicWave().
Exemples
Déclaration basique d'un audio context :
var contexteAudio = new AudioContext();
Variante avec gestion de la compatibilité navigateur:
var AudioContext = window.AudioContext || window.webkitAudioContext;
var contexteAudio = new AudioContext();
var oscillatorNode = contexteAudio.createOscillator();
var gainNode = contexteAudio.createGain();
var finish = contexteAudio.destination;
// etc.
Spécifications
| Specification |
|---|
| Web Audio API> # AudioContext> |
Compatibilité des navigateurs
Chargement…