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

js
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:

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.

js
// 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.

js
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

Siehe auch