AudioWorkletProcessor: AudioWorkletProcessor() 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.

Der AudioWorkletProcessor() Konstruktor erstellt ein neues AudioWorkletProcessor-Objekt, das einen zugrunde liegenden Audiobearbeitungsmechanismus eines AudioWorkletNode darstellt.

Hinweis: Der AudioWorkletProcessor und die von ihm abgeleiteten Klassen können nicht direkt aus benutzergeliefertem Code instanziiert werden. Stattdessen werden sie nur intern durch die Erstellung eines zugehörigen AudioWorkletNode erstellt.

Syntax

js
new AudioWorkletProcessor(options)

Parameter

options

Ein Objekt, das als options Parameter an den AudioWorkletNode() Konstruktor übergeben wird und durch den strukturieren Klon-Algorithmus übergeben wird. Verfügbare Eigenschaften sind wie folgt:

numberOfInputs Optional

Der Wert zur Initialisierung der numberOfInputs Eigenschaft. Standardmäßig 1.

numberOfOutputs Optional

Der Wert zur Initialisierung der numberOfOutputs Eigenschaft. Standardmäßig 1.

outputChannelCount Optional

Ein Array, das die Anzahl der Kanäle für jeden Ausgang definiert. Beispielsweise gibt outputChannelCount: [n, m] die Anzahl der Kanäle im ersten Ausgang als n und im zweiten Ausgang als m an. Die Array-Länge muss numberOfOutputs entsprechen.

parameterData Optional

Ein Objekt, das die Anfangswerte benutzerdefinierter AudioParam-Objekte auf diesem Node (in seiner parameters Eigenschaft) enthält, wobei key der Name eines benutzerdefinierten Parameters ist und value dessen Anfangswert.

processorOptions Optional

Jegliche zusätzlichen Daten, die für die benutzerdefinierte Initialisierung des zugrunde liegenden AudioWorkletProcessor verwendet werden können.

Beachten Sie, dass es Standardwerte für die ersten beiden Eigenschaften gibt, sodass selbst wenn kein options Objekt an den AudioWorkletNode() Konstruktor übergeben wird, das options Objekt, das vom Node an den AudioWorkletProcessor Konstruktor übergeben wird, existiert und zumindest numberOfInputs und numberOfOutputs enthält.

Rückgabewert

Die neu konstruierte AudioWorkletProcessor-Instanz.

Beispiele

In diesem Beispiel übergeben wir benutzerdefinierte Optionen an den AudioWorkletNode() Konstruktor und beobachten, wie ein strukturierter Klon davon an unseren AudioWorkletProcessor Konstruktor übergeben wird.

Zuerst müssen wir einen benutzerdefinierten AudioWorkletProcessor definieren und ihn registrieren. Beachten Sie, dass dies in einer separaten Datei erfolgen sollte.

js
// test-processor.js
class TestProcessor extends AudioWorkletProcessor {
  constructor(options) {
    super();
    console.log(options.numberOfInputs);
    console.log(options.processorOptions.someUsefulVariable);
  }
  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, wobei wir ihm den Namen des Prozessors und das options Objekt übergeben.

Im options Objekt übergeben wir processorOptions mit einer Map Instanz unter dem Schlüssel someUsefulVariable. Wir übergeben numberOfInputs nicht und sehen, wie es seinen Standardwert erhält.

js
const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("test-processor.js");
const testNode = new AudioWorkletNode(audioContext, "test-processor", {
  processorOptions: {
    someUsefulVariable: new Map([
      [1, "one"],
      [2, "two"],
    ]),
  },
});

Die Konsolenausgabe wird wie folgt sein:

> 1 // AudioWorkletNode options.numberOfInputs set to default
> Map(2) { 1 => "one", 2 => "two" } // A cloned map under someUsefulVariable

Spezifikationen

Specification
Web Audio API
# dom-audioworkletprocessor-audioworkletprocessor

Browser-Kompatibilität

Siehe auch