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

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

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.

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

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

Siehe auch