BaseAudioContext: Methode createChannelMerger()

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 Methode createChannelMerger() des BaseAudioContext-Interfaces erstellt einen ChannelMergerNode, der Kanäle aus mehreren Audioströmen zu einem einzelnen Audiostrom kombiniert.

Hinweis: Der Konstruktor ChannelMergerNode() wird empfohlen, um einen ChannelMergerNode zu erzeugen; siehe Erstellen eines AudioNodes.

Syntax

js
createChannelMerger(numberOfInputs)

Parameter

numberOfInputs

Die Anzahl der Kanäle in den Eingangsaudioströmen, die der Ausgangsstrom enthalten wird; der Standardwert ist 6, wenn dieser Parameter nicht angegeben wird.

Rückgabewert

Beispiele

Das folgende Beispiel zeigt, wie Sie einen Stereo-Track (zum Beispiel ein Musikstück) trennen und den linken und rechten Kanal unterschiedlich verarbeiten könnten. Dazu müssen Sie die zweite und dritte Parameter der Methode AudioNode.connect(AudioNode) verwenden, die es Ihnen ermöglichen, sowohl den Index des Kanals anzugeben, von dem verbunden werden soll, als auch den Index des Kanals, zu dem verbunden werden soll.

js
const ac = new AudioContext();
ac.decodeAudioData(someStereoBuffer, (data) => {
  const source = ac.createBufferSource();
  source.buffer = data;
  const splitter = ac.createChannelSplitter(2);
  source.connect(splitter);
  const merger = ac.createChannelMerger(2);

  // Reduce the volume of the left channel only
  const gainNode = ac.createGain();
  gainNode.gain.setValueAtTime(0.5, ac.currentTime);
  splitter.connect(gainNode, 0);

  // Connect the splitter back to the second input of the merger: we
  // effectively swap the channels, here, reversing the stereo image.
  gainNode.connect(merger, 0, 1);
  splitter.connect(merger, 1, 0);

  const dest = ac.createMediaStreamDestination();

  // Because we have used a ChannelMergerNode, we now have a stereo
  // MediaStream we can use to pipe the Web Audio graph to WebRTC,
  // MediaRecorder, etc.
  merger.connect(dest);
});

Spezifikationen

Specification
Web Audio API
# dom-baseaudiocontext-createchannelmerger

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch