AudioContext.createGain()
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.
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
Chargement…