AudioContext.createGain()
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since April 2021.
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
qui prend en entrée une ou plusieurs sources audio et en sortie un son dont le volume a été ajusté à un niveau indiqué par le paramètre de type a-rate GainNode.gain
.
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>
<button class="boutonson">Mute button</button>
</div>
var contexteAudio = new (window.AudioContext || window.webkitAudioContext)();
var gainNode = contexteAudio.createGain();
var boutonSon = document.querySelector('.boutonson'),
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 (erreur) {
console.log("L'erreur à la noix suivante vient de se produire : " + erreur);
});
}
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
Specification |
---|
Web Audio API # dom-baseaudiocontext-creategain |
Compatibilité des navigateurs
BCD tables only load in the browser