L'interface GainNode représente une variation de volume. Il s'agit d'un AudioNode, c'est un module de traitement audio, qui provoque un gain donné à appliquer à des données d'entrée avant sa propagation à la sortie. Un GainNode a toujours exactement une entrée et une sortie, avec la même quantité de canaux.

Le gain est une valeur sans unité, qui change éventuellement avec le temps, qui est multiplié à chaque échantillon correspondant de tous les canaux entrées. En cas de modification, le nouveau gain est appliqué à l'aide d'un algorithme d'effilochage afin d'éviter aux «clics» inesthétiques d'apparaître dans l'audio résultant.

The GainNode is increasing the gain of the output.

Nombre d'entrées 1
Nombre de sorties 1
Mode de comptage des canaux "max"
Nombre de canaux 2 (inutilisés dans le mode de comptage par défaut)
Interprétation des canaux "speakers"

Constructeur

GainNode()
Crée une nouvelle instance d'un objet GainNode. Il ne faut pas créer un noeud de gain manuellement, mais plutôt utiliser la méthode AudioContext.createGain().

Propriétés

Hérite des propritétés de son parent, AudioNode.

GainNode.gain
Est un a-rate AudioParam représentant le montant du gain à appliquer. (Bien que le AudioParam retournée est en lecture seule, la valeur qu'il représente ne l'est pas).

Méthodes

Aucune méthode spécifique; hérite des méthodes de son parent, AudioNode.

Exemple

The following example shows basic usage of an AudioContext to create a GainNode, which is then used to mute and unmute the audio when a Mute button is clicked by changing the gain property value.

The below snippet wouldn't work as is — for a complete working example, check out our Voice-change-O-matic demo (view source.)

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

if (navigator.mediaDevices.getUserMedia) {
 navigator.mediaDevices.getUserMedia (
   // constraints - only audio needed for this app
   {
     audio: true
   },

   // Success callback
   function(stream) {
     source = audioCtx.createMediaStreamSource(stream);

   },

   // Error callback
   function(err) {
     console.log('The following gUM error occured: ' + err);
   }
  );
} else {
   console.log('getUserMedia not supported on your browser!');
}

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

  ...

mute.onclick = voiceMute;

function voiceMute() {
  if(mute.id == "") {
    gainNode.gain.value = 0;
    mute.id = "activated";
    mute.innerHTML = "Unmute";
  } else {
    gainNode.gain.value = 1;
    mute.id = "";
    mute.innerHTML = "Mute";
  }
}

Spécification

Spécification Statuts Commentaire
Web Audio API
La définition de 'GainNode' dans cette spécification.
Version de travail  

Compatibilité navigateurs

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
Support basique 10.0webkit (Oui) 25.0 (25.0)  Pas de support 15webkit
22
6.0webkit
constructeur 55.0 (Oui) ? ? 42 ?
Fonctionnalité Android Android Webview Edge Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
Support basique Pas de support (Oui) (Oui) 26.0 1.2 ? (Oui) ? 33.0
constructeur Pas de support 55.0 (Oui) ? ? ? 42 ? 55.0

Voir aussi

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : marie-ototoi, fscholz, teoli, vava, tregagnon, Delapouite, dexterneo
 Dernière mise à jour par : marie-ototoi,