Créer un contexte audio

Documentation MDN

Avertissement

Attention au niveau sonore !

// on créé une référence à l'interface AudioContext selon ce qui est disponible (si window.AudioContext n'est pas disponible on essaye avec webkitAudioContext)
var AudioContext = window.AudioContext || window.webkitAudioContext;

// on créé un objet contexte qui nous permet de nous connecter au système audio de l'ordinateur, et de lui envoyer du son
var contexte_audio = new AudioContext();

// on créé un oscillateur
var oscillateur = contexte_audio.createOscillator();

// on le connecte à notre contexte audio
oscillateur.connect( contexte_audio.destination );

// on démarre l'oscillateur
oscillateur.start();

// au cas où le contexte audio nécéssite d'être activé par une action de l'utilisateur
document.body.addEventListener( 'click', function () {

   // si le contexte est en pause
   if ( contexte_audio.state === 'suspended' ) {

      // on lève cette suspension
      contexte_audio.resume();
   }
})

étape par étape

../../_images/base-contexte-01.svg

Au départ, il y a la sortie son… Mais aucune connexion n’est présente.


// on créé une référence à l'interface AudioContext selon ce qui est disponible (si window.AudioContext n'est pas disponible on essaye avec webkitAudioContext)
var AudioContext = window.AudioContext || window.webkitAudioContext;

// on créé un objet contexte qui nous permet de nous connecter au système audio de l'ordinateur, et de lui envoyer du son
var contexte_audio = new AudioContext();
../../_images/base-contexte-02.svg

On créé un contexte audio, connecté à la sortie son.


// on créé un oscillateur
var oscillateur = contexte_audio.createOscillator();
../../_images/base-contexte-03.svg

On créé un oscillateur. Il n’est connecté à rien.


// on le connecte à notre contexte audio
oscillateur.connect( contexte_audio.destination );
../../_images/base-contexte-04.svg

On le connecte au contexte audio.


// on démarre l'oscillateur
oscillateur.start();
../../_images/base-contexte-05.svg

On démarre l’oscillateur.