AudioContext.createGain()

La méthode createGain de l'interface AudioContext crée un GainNode qui peut être utilisé pour contrôler le volume global du graphe audio.

Syntaxe

var contexteAudio = new AudioContext();
var gainNode = contexteAudio.createGain();

Retourne

Un GainNode.

Exemple

L'exemple suivant montre l'utilisation d'un AudioContext pour créer un GainNode, qui sert à activer et désactiver le son au clic d'un bouton, en changeant la valeur de la propriété gain.

L'extrait de code ci-dessous ne fonctionne pas tel quel - pour un exemple complet qui fonctionne, consulter la démo Voice-change-O-matic (et son code source.)

<div>
  <a class="mute">Mute button</a>
</div>
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var gainNode = contexteAudio.createGain();
var mute = document.querySelector('.mute');
var source;

if (navigator.getUserMedia) { 
  navigator.getUserMedia ( 
    // contraintes - cette app nécessite seulement l'audio
    { 
       audio: true 
    }, 
    // fonction de rappel en cas de succès 
    function(flux) { 
      source = contexteAudio.createMediaStreamSource(flux);     
    }, 
    // fonction de rappel en cas d'erreur  
    function(err) { 
      console.log("L'erreur à la noix suivante vient de se produire : " + err); 
    } 
  );
} else { 
  console.log('getUserMedia n'est pas supporté par votre navigateur !');
}

source.connect(gainNode);
gainNode.connect(contexteAudio.destination);

  ...

boutonSon.onclick = couperSon;

function couperSon() {
  if(boutonSon.id == "") {
    gainNode.gain.value = 0;
    boutonSon.id = "activated";
    boutonSon.innerHTML = "Activer le son";
  } else {
    gainNode.gain.value = 1;
    boutonSon.id = "";
    boutonSon.innerHTML = "Couper le son";
  }
}

Spécifications

Spécification Status Commentaire
Web Audio API
La définition de 'createGain()' dans cette spécification.
Version de travail  

Compatibilité navigateur

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Basic support 10.0webkit 25.0 (25.0)  Pas de support 15.0webkit
22 (unprefixed)
6.0webkit
Feature Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Basic support ? 26.0 1.2 ? ? ? 33.0

 

Voir aussi

Étiquettes et contributeurs liés au document

Étiquettes : 
 Contributeurs à cette page : marie-ototoi, Threstle
 Dernière mise à jour par : marie-ototoi,