BaseAudioContext: createGain() Methode
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.
Die createGain()
-Methode der BaseAudioContext
-Schnittstelle erzeugt ein GainNode
, das verwendet werden kann, um die Gesamtverstärkung (oder Lautstärke) des Audiografen zu steuern.
Hinweis: Der GainNode()
-Konstruktor ist die empfohlene Methode zur Erstellung eines GainNode
; siehe
Erstellen eines AudioNode.
Syntax
createGain()
Parameter
Keine.
Rückgabewert
Ein GainNode
, das als Eingabe eine oder mehrere Audioquellen übernimmt und dessen Lautstärke in der Verstärkung (Lautstärke) auf ein durch den GainNode.gain
a-rate-Parameter spezifiziertes Niveau angepasst wurde.
Beispiele
Das folgende Beispiel zeigt die grundlegende Verwendung eines AudioContext
zur Erstellung eines GainNode
, das dann verwendet wird, um den Ton stumm zu schalten und die Stummschaltung aufzuheben, wenn ein Stumm-Taste gedrückt wird, indem der Wert der gain
-Eigenschaft geändert wird.
Das untenstehende Snippet würde nicht funktionieren, wie es ist — für ein vollständiges funktionierendes Beispiel, schauen Sie sich unser Voice-change-O-matic Demo an (Quelltext anzeigen.)
<div>
<button class="mute">Mute button</button>
</div>
const audioCtx = new AudioContext();
const gainNode = audioCtx.createGain();
const mute = document.querySelector(".mute");
let source;
if (navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices.getUserMedia(
// constraints - only audio needed for this app
{
audio: true,
},
// Success callback
(stream) => {
source = audioCtx.createMediaStreamSource(stream);
},
// Error callback
(err) => {
console.error(`The following gUM error occurred: ${err}`);
},
);
} else {
console.error("getUserMedia not supported on your browser!");
}
source.connect(gainNode);
gainNode.connect(audioCtx.destination);
// …
mute.onclick = () => {
if (mute.id === "") {
// 0 means mute. If you still hear something, make sure you haven't
// connected your source into the output in addition to using the GainNode.
gainNode.gain.setValueAtTime(0, audioCtx.currentTime);
mute.id = "activated";
mute.textContent = "Unmute";
} else {
gainNode.gain.setValueAtTime(1, audioCtx.currentTime);
mute.id = "";
mute.textContent = "Mute";
}
};
Spezifikationen
Specification |
---|
Web Audio API # dom-baseaudiocontext-creategain |
Browser-Kompatibilität
BCD tables only load in the browser