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
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
Ein ChannelSplitterNode
.
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.
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