AudioWorkletNode
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.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis:
Obwohl die Schnittstelle außerhalb von sicheren Kontexten verfügbar ist, ist die Eigenschaft BaseAudioContext.audioWorklet es nicht, daher können benutzerdefinierte AudioWorkletProcessors außerhalb dieser nicht definiert werden.
Die AudioWorkletNode-Schnittstelle der Web Audio API stellt eine Basisklasse für einen benutzerdefinierten AudioNode dar, der zusammen mit anderen Knoten in ein Audio-Routing-Graph verbunden werden kann. Sie hat einen zugehörigen AudioWorkletProcessor, der die tatsächliche Audioverarbeitung in einem Web-Audio-Rendering-Thread durchführt.
Konstruktor
AudioWorkletNode()-
Erstellt eine neue Instanz eines
AudioWorkletNode-Objekts.
Instanzeigenschaften
Erbt auch Eigenschaften von seinem Elternteil, AudioNode.
AudioWorkletNode.portSchreibgeschützt-
Gibt einen
MessagePortzurück, der für die bidirektionale Kommunikation zwischen dem Knoten und seinem zugehörigenAudioWorkletProcessorverwendet wird. Das andere Ende ist über dieport-Eigenschaft des Prozessors verfügbar. AudioWorkletNode.parametersSchreibgeschützt-
Gibt ein
AudioParamMapzurück — eine Sammlung vonAudioParam-Objekten. Diese werden während der Erstellung des zugrundeliegendenAudioWorkletProcessorinstanziiert. Wenn derAudioWorkletProcessorüber einen statischenparameterDescriptors-Getter verfügt, wird das daraus zurückgegebeneAudioParamDescriptor-Array verwendet, umAudioParam-Objekte auf demAudioWorkletNodezu erstellen. Mit diesem Mechanismus ist es möglich, eigeneAudioParam-Objekte zugänglich zu machen von IhremAudioWorkletNode. Sie können dann ihre Werte im zugehörigenAudioWorkletProcessorverwenden.
Ereignisse
processorerror-
Wird ausgelöst, wenn im zugehörigen
AudioWorkletProcessorein Fehler auftritt. Sobald er auftritt, wird der Prozessor und folglich der Knoten während seiner gesamten Lebensdauer Stille ausgeben.
Instanzmethoden
Erbt auch Methoden von seinem Elternteil, AudioNode.
Die AudioWorkletNode-Schnittstelle definiert keine eigenen Methoden.
Beispiele
In diesem Beispiel erstellen wir einen benutzerdefinierten AudioWorkletNode, der zufälliges Rauschen ausgibt.
Zuerst müssen wir einen benutzerdefinierten AudioWorkletProcessor definieren, der zufälliges Rauschen ausgibt, und ihn registrieren. Beachten Sie, dass dies in einer separaten Datei erfolgen sollte.
// random-noise-processor.js
class RandomNoiseProcessor extends AudioWorkletProcessor {
process(inputs, outputs, parameters) {
const output = outputs[0];
output.forEach((channel) => {
for (let i = 0; i < channel.length; i++) {
channel[i] = Math.random() * 2 - 1;
}
});
return true;
}
}
registerProcessor("random-noise-processor", RandomNoiseProcessor);
Als nächstes werden wir in unserem Hauptskript die Prozessor laden, eine Instanz von AudioWorkletNode erstellen, indem wir ihm den Namen des Prozessors übergeben, und den Knoten mit einem Audio-Graphen verbinden.
const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("random-noise-processor.js");
const randomNoiseNode = new AudioWorkletNode(
audioContext,
"random-noise-processor",
);
randomNoiseNode.connect(audioContext.destination);
Spezifikationen
| Specification |
|---|
| Web Audio API> # AudioWorkletNode> |