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

js
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.)

html
<div>
  <button class="mute">Mute button</button>
</div>
js
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

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
createGain

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

Siehe auch