BaseAudioContext: createChannelSplitter()-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 createChannelSplitter()-Methode der BaseAudioContext-Schnittstelle wird verwendet, um einen ChannelSplitterNode zu erzeugen, der dazu genutzt wird, die einzelnen Kanäle eines Audio-Streams zuzugreifen und separat zu verarbeiten.

Hinweis: Der ChannelSplitterNode()-Konstruktor ist der empfohlene Weg, um einen ChannelSplitterNode zu erstellen; siehe Erstellung eines AudioNode.

Syntax

js
createChannelSplitter(numberOfOutputs)

Parameter

numberOfOutputs

Die Anzahl der Kanäle im Eingabe-Audio-Stream, die Sie separat ausgeben möchten; der Standardwert ist 6, wenn dieser Parameter nicht angegeben ist.

Rückgabewert

Beispiele

Das folgende einfache Beispiel zeigt, wie Sie einen Stereotrack (zum Beispiel ein Musikstück) trennen und den linken und rechten Kanal unterschiedlich verarbeiten könnten. Um sie zu verwenden, müssen Sie die zweiten und dritten Parameter der AudioNode.connect(AudioNode)-Methode verwenden, die es Ihnen ermöglichen, den Index des Kanals anzugeben, von dem aus verbunden werden soll, und 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-createchannelsplitter

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch