AudioWorkletGlobalScope: registerProcessor()-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 registerProcessor
-Methode des AudioWorkletGlobalScope
-Interfaces registriert einen Klassenkonstruktor, der von der AudioWorkletProcessor
-Schnittstelle abgeleitet ist, unter einem angegebenen Namen.
Syntax
registerProcessor(name, processorCtor)
Parameter
name
-
Ein String, der den Namen darstellt, unter dem der Prozessor registriert wird.
processorCtor
-
Der Konstruktor einer Klasse, die von
AudioWorkletProcessor
abgeleitet ist.
Hinweis:
Ein Schlüssel-Wert-Paar { name: constructor }
wird intern im AudioWorkletGlobalScope
gespeichert, sobald der Prozessor
registriert ist. Der Name ist zu referenzieren, wenn ein AudioWorkletNode
basierend auf dem registrierten Prozessor erstellt wird. Ein neuer Prozessor mit dem angegebenen Namen wird intern erstellt und mit dem neuen Knoten verknüpft.
Rückgabewert
Keiner (undefined
).
Ausnahmen
NotSupportedError
DOMException
-
Wird unter den folgenden Bedingungen ausgelöst:
- Der Name ist ein leerer String.
- Ein Konstruktor unter dem angegebenen Namen ist bereits registriert. Die zweimalige Registrierung desselben Namens ist nicht erlaubt.
TypeError
-
Wird unter den folgenden Bedingungen ausgelöst:
- Der processorCtor ist kein aufrufbarer Konstruktor.
- Die
parameterDescriptors
-Eigenschaft des Konstruktors existiert und gibt kein Array von aufAudioParamDescriptor
basierenden Objekten zurück.
Beispiele
In diesem Beispiel erstellen wir einen benutzerdefinierten AudioWorkletNode
, der Stille ausgibt.
Zuerst müssen wir einen benutzerdefinierten AudioWorkletProcessor
definieren und registrieren.
Beachten Sie, dass dies in einer separaten Datei erfolgen sollte.
// test-processor.js
class TestProcessor extends AudioWorkletProcessor {
process(inputs, outputs, parameters) {
return true;
}
}
registerProcessor("test-processor", TestProcessor);
Als nächstes laden wir in unserer Hauptskriptdatei den Prozessor, erstellen eine Instanz von AudioWorkletNode
– indem wir ihm den Prozessor-Namen übergeben, den wir bei der Aufrufung von registerProcessor
verwendet haben – und verbinden ihn mit einem Audiografen.
const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("test-processor.js");
const node = new AudioWorkletNode(audioContext, "test-processor");
node.connect(audioContext.destination);
Spezifikationen
Specification |
---|
Web Audio API # dom-audioworkletglobalscope-registerprocessor |