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 der AudioWorkletGlobalScope
-Schnittstelle 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 in der AudioWorkletGlobalScope
gespeichert, sobald der Prozessor registriert ist. Der Name wird verwendet, wenn ein AudioWorkletNode
basierend auf dem registrierten Prozessor erstellt wird. Intern wird ein neuer Prozessor mit dem angegebenen Namen erstellt und mit dem neuen Knoten assoziiert.
Rückgabewert
Keiner (undefined
).
Ausnahmen
NotSupportedError
DOMException
-
Wird unter folgenden Bedingungen ausgelöst:
- Der Name ist ein leerer String.
- Ein Konstruktor unter dem angegebenen Namen ist bereits registriert. Das Registrieren desselben Namens zweimal ist nicht erlaubt.
TypeError
-
Wird unter 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 erzeugt.
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);
Anschließend laden wir in unserer Hauptskriptdatei den Prozessor, erstellen eine Instanz von AudioWorkletNode
—und übergeben ihr den Prozessor-Namen, den wir beim Aufruf von registerProcessor
verwendet haben—und verbinden ihn mit einem Audio-Graph.
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 |
Browser-Kompatibilität
BCD tables only load in the browser