AudioWorkletNode: AudioWorkletNode() Konstruktor
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.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Der AudioWorkletNode()
-Konstruktor erstellt ein neues AudioWorkletNode
-Objekt, das einen AudioNode
darstellt, der eine JavaScript-Funktion verwendet, um benutzerdefinierte Audiobearbeitung durchzuführen.
Syntax
new AudioWorkletNode(context, name)
new AudioWorkletNode(context, name, options)
Parameter
context
-
Die
BaseAudioContext
-Instanz, mit der dieser Node verbunden sein wird. name
-
Ein String, der den Namen des
AudioWorkletProcessor
darstellt, auf dem dieser Knoten basieren wird. Ein Prozessor mit dem angegebenen Namen muss zuerst mittels der MethodeAudioWorkletGlobalScope.registerProcessor()
registriert werden. options
Optional-
Ein Objekt, das null oder mehr der folgenden optionalen Eigenschaften enthält, um den neuen Node zu konfigurieren:
Hinweis: Das Ergebnis des strukturierten Klon-Algorithmus, angewendet auf das Objekt, wird auch intern an den zugehörigen
AudioWorkletProcessor()
-Konstruktor übergeben — dies ermöglicht eine benutzerdefinierte Initialisierung eines benutzerdefiniertenAudioWorkletProcessor
.numberOfInputs
Optional-
Der Wert zur Initialisierung der
numberOfInputs
-Eigenschaft. Standardmäßig ist dies 1. numberOfOutputs
Optional-
Der Wert zur Initialisierung der
numberOfOutputs
-Eigenschaft. Standardmäßig ist dies 1. outputChannelCount
Optional-
Ein Array, das die Anzahl der Kanäle für jeden Ausgang definiert. Zum Beispiel spezifiziert outputChannelCount: [n, m] die Anzahl der Kanäle im ersten Ausgang als n und im zweiten Ausgang als m. Die Länge des Arrays muss
numberOfOutputs
entsprechen. parameterData
Optional-
Ein Objekt, das die Anfangswerte von benutzerdefinierten
AudioParam
-Objekten auf diesem Node (in seinerparameters
-Eigenschaft) enthält, wobeikey
der Name eines benutzerdefinierten Parameters undvalue
dessen Anfangswert ist. processorOptions
Optional-
Alle zusätzlichen Daten, die für eine benutzerdefinierte Initialisierung des zugrunde liegenden
AudioWorkletProcessor
verwendet werden können.
Ausnahmen
NotSupportedError
DOMException
-
Die angegebene
options.outputChannelCount
ist0
oder größer als die aktuelle Implementierung unterstützt.Sowohl
options.numberOfInputs
als auchoptions.numberOfOutputs
sind 0. IndexSizeError
DOMException
-
Die Länge des
options.outputChannelCount
-Arrays stimmt nicht mitoptions.numberOfOutputs
überein.
Nutzungshinweise
Verschiedene Werte des options
-Parameters können die folgenden Effekte haben.
Wenn sowohl die Anzahl der Eingänge als auch der Ausgänge auf 0 gesetzt sind, wird ein NotSupportedError
ausgelöst und der Knotenherstellungsprozess abgebrochen. Wenn die Länge des outputChannelCount
-Arrays nicht mit numberOfOutputs
übereinstimmt, wird ein IndexSizeError
DOMException
ausgelöst.
Wenn outputChannelCount
nicht angegeben wird und sowohl numberOfInputs
als auch numberOfOutputs
auf 1 gesetzt sind, wird die anfängliche Kanalanzahl des AudioWorkletNode
auf 1 gesetzt. Dies hat den Effekt, die Anzahl der Ausgangskanäle dynamisch an die berechnete Anzahl der Kanäle anzupassen, basierend auf der Kanalanzahl des Eingangs und der aktuellen Einstellung der AudioNode
-Eigenschaft channelCountMode
.
Andernfalls, wenn outputChannelCount
angegeben wird und die Werte von numberOfInputs
und numberOfOutputs
beide 1 sind, wird die Kanalanzahl des Audio-Worklet-Knotens auf den Wert von outputChannelCount
gesetzt. Ansonsten wird die Kanalanzahl jedes Kanals im Satz von Ausgangskanälen so gesetzt, dass sie mit dem entsprechenden Wert im outputChannelCount
-Array übereinstimmt.
Beispiele
Für ein vollständiges Beispiel, das benutzerdefinierte Audiobearbeitung demonstriert, siehe die Seite AudioWorkletNode
.
Spezifikationen
Specification |
---|
Web Audio API # dom-audioworkletnode-audioworkletnode |
Browser-Kompatibilität
BCD tables only load in the browser