Signatur
Beschreibung
Die Eigenschaft channelCount gibt an, wie viele Kanäle ein Knoten beim Mischen seiner Eingangsverbindungen verwendet. Wie der Wert genau ausgewertet wird, hängt von channelCountMode ab:
"max":channelCountwird ignoriert, die Kanalzahl ergibt sich aus der größten Eingangsverbindung."clamped-max": wie"max", aber höchstenschannelCountKanäle."explicit": Es wird genauchannelCountverwendet – Eingänge werden entsprechend hoch- oder heruntergemischt.
Wie das Mischen im Detail geschieht (lautsprecherbezogen oder rein kanalweise), bestimmt channelInterpretation ("speakers" oder "discrete"). Der Standardwert von channelCount ist bei den meisten Knoten 2; bei AudioDestinationNode kann der Wert bis maxChannelCount gesetzt werden.
Praktisch nützlich ist die Eigenschaft, um z. B. ein Signal gezielt auf Mono herunterzumischen, Mehrkanal-Ausgabe (5.1) zu aktivieren oder einen ChannelMergerNode/AudioWorkletNode mit fester Kanalzahl zu betreiben.
Rückgabewert
Beispiele
Standardwert auslesen
const ctx = new AudioContext();
const gain = ctx.createGain();
console.log(gain.channelCount, gain.channelCountMode, gain.channelInterpretation);
Stereo-Signal auf Mono heruntermischen
const ctx = new AudioContext();
const osc = new OscillatorNode(ctx);
const monoGain = new GainNode(ctx, {
channelCount: 1,
channelCountMode: 'explicit',
channelInterpretation: 'speakers'
});
osc.connect(monoGain).connect(ctx.destination);
osc.start();
console.log(monoGain.channelCount);
Mehrkanal-Ausgabe aktivieren, falls verfügbar
const ctx = new AudioContext();
const dest = ctx.destination;
console.log('max. Kanäle:', dest.maxChannelCount);
if (dest.maxChannelCount >= 6) {
dest.channelCount = 6; // 5.1-Ausgabe
dest.channelCountMode = 'explicit';
}
console.log('aktiv:', dest.channelCount);
Ungültigen Wert abfangen
const ctx = new AudioContext();
const gain = ctx.createGain();
try {
gain.channelCount = 0;
} catch (err) {
console.log(err.name);
}
// Wichtig · Fallstricke
- Bei
channelCountMode = "max"(Standard für viele Knoten) hat das Setzen vonchannelCountkeine hörbare Wirkung – gemeinsam mit"explicit"oder"clamped-max"verwenden. - Werte von
0oder über dem Maximum lösenNotSupportedErroraus; beiAudioDestinationNodeführt ein Wert übermaxChannelCountzuIndexSizeError. - Einige Knoten haben feste Einschränkungen: z. B.
ChannelMergerNode/ChannelSplitterNode,ConvolverNode,PannerNode,StereoPannerNodeundDynamicsCompressorNodeerlauben nur bestimmte Werte (oft maximal 2) und werfen sonst eine Ausnahme. - Bei
OfflineAudioContextistdestination.channelCountdurch den Konstruktor festgelegt und nicht änderbar. - In allen modernen Browsern unterstützt; die tatsächliche Mehrkanalausgabe hängt von der Audiohardware ab.