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 Klassen, die von ihm erben, können nicht direkt von 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 und durch den strukturierten Klon-Algorithmus geleitet wird. Verfügbare Eigenschaften sind wie folgt:numberOfInputsOptional-
Der Wert zur Initialisierung der
numberOfInputsEigenschaft. Standardmäßig auf 1 gesetzt. numberOfOutputsOptional-
Der Wert zur Initialisierung der
numberOfOutputsEigenschaft. Standardmäßig auf 1 gesetzt. outputChannelCountOptional-
Ein Array, das die Anzahl der Kanäle für jeden Ausgang definiert. Zum Beispiel spezifiziert outputChannelCount: [n, m] die Anzahl der Kanäle im ersten Ausgang als n und im zweiten Ausgang als m. Die Array-Länge muss mit
numberOfOutputsübereinstimmen. parameterDataOptional-
Ein Objekt, das die Anfangswerte der benutzerdefinierten
AudioParamObjekte auf diesem Node enthält (in seinerparametersEigenschaft), wobeikeyder Name eines benutzerdefinierten Parameters undvaluedessen Anfangswert ist. 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 von dem Node an denAudioWorkletProcessorKonstruktor übergebene options Objekt existiert und mindestensnumberOfInputsundnumberOfOutputsenthält.
Rückgabewert
Die neu erstellte 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 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 und übergeben ihm den Namen des Prozessors und das options Objekt.
Im options Objekt übergeben wir processorOptions mit einer
Map Instanz unter dem someUsefulVariable Schlüssel. Wir übergeben nicht
numberOfInputs und beobachten, 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
| Specification |
|---|
| Web Audio API> # dom-audioworkletprocessor-audioworkletprocessor> |
Browser-Kompatibilität
Siehe auch
AudioWorkletNodeSchnittstelle