AudioWorkletProcessor: AudioWorkletProcessor() Konstruktor
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit April 2021 browserübergreifend verfügbar.
Der AudioWorkletProcessor() Konstruktor erstellt ein neues AudioWorkletProcessor-Objekt, das einen zugrunde liegenden Audiobearbeitungsmechanismus eines AudioWorkletNode repräsentiert.
Hinweis:
Der AudioWorkletProcessor und Klassen, die von ihm abgeleitet sind, können nicht direkt aus benutzerdefiniertem Code instanziiert werden. Stattdessen werden sie nur intern durch die Erstellung eines zugehörigen AudioWorkletNode erstellt.
Syntax
new AudioWorkletProcessor(options)
Parameter
options-
Ein Objekt, das als options-Parameter an den
AudioWorkletNode()-Konstruktor übergeben wird und durch den strukturierten Klonalgorithmus gereicht wird. Verfügbare Eigenschaften sind wie folgt:numberOfInputsOptional-
Der Wert zur Initialisierung der
numberOfInputs-Eigenschaft. Standard ist 1. numberOfOutputsOptional-
Der Wert zur Initialisierung der
numberOfOutputs-Eigenschaft. Standard ist 1. outputChannelCountOptional-
Ein Array, das die Anzahl der Kanäle für jeden Output definiert. Zum Beispiel spezifiziert outputChannelCount: [n, m] die Anzahl der Kanäle im ersten Output auf n und den zweiten Output auf m. Die Array-Länge muss
numberOfOutputsentsprechen. parameterDataOptional-
Ein Objekt, das die Anfangswerte der benutzerdefinierten
AudioParam-Objekte auf diesem Knoten (in seinerparameters-Eigenschaft) enthält, wobeikeyder Name eines benutzerdefinierten Parameters ist undvaluesein Anfangswert. processorOptionsOptional-
Alle zusätzlichen Daten, die für die benutzerdefinierte Initialisierung des zugrunde liegenden
AudioWorkletProcessorverwendet 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 vom Node an denAudioWorkletProcessor-Konstruktor übergebene options-Objekt existiert und mindestensnumberOfInputsundnumberOfOutputsenthält.
Rückgabewert
Das neu konstruierte AudioWorkletProcessor-Exemplar.
Beispiele
In diesem Beispiel übergeben wir benutzerdefinierte Optionen an den AudioWorkletNode()-Konstruktor und beobachten, wie eine strukturierte Klonung von ihnen an unseren AudioWorkletProcessor-Konstruktor übergeben wird.
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 {
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, indem wir 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 nicht numberOfInputs und sehen, wie es seinen Standardwert erhält.
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
| Spezifikation |
|---|
| Web Audio API> # dom-audioworkletprocessor-audioworkletprocessor> |
Browser-Kompatibilität
Siehe auch
AudioWorkletNodeSchnittstelle