AudioWorkletNode
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.
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 sicherer Kontexte verfügbar ist, gilt dies nicht für die Eigenschaft BaseAudioContext.audioWorklet. Daher können benutzerdefinierte AudioWorkletProcessor-Implementierungen außerhalb sicherer Kontexte nicht definiert werden.
Die Schnittstelle AudioWorkletNode der Web Audio API stellt eine Basisklasse für einen benutzerdefinierten AudioNode dar, der zusammen mit anderen Knoten mit einem Audio-Routing-Graphen verbunden werden kann. Ihr ist ein AudioWorkletProcessor zugeordnet, der die eigentliche Audioverarbeitung in einem Web-Audio-Rendering-Thread übernimmt.
Konstruktor
AudioWorkletNode()-
Erstellt eine neue Instanz eines
AudioWorkletNode-Objekts.
Instanzeigenschaften
Erbt außerdem Eigenschaften von der übergeordneten Schnittstelle AudioNode.
AudioWorkletNode.portSchreibgeschützt-
Gibt einen
MessagePortzurück, der für die bidirektionale Kommunikation zwischen dem Knoten und dem zugehörigenAudioWorkletProcessorverwendet wird. Das andere Ende ist über die Eigenschaftportdes Prozessors verfügbar. AudioWorkletNode.parametersSchreibgeschützt-
Gibt eine
AudioParamMapzurück – eine Sammlung vonAudioParam-Objekten. Diese werden bei der Erstellung des zugrunde liegendenAudioWorkletProcessorinstanziiert. Wenn derAudioWorkletProcessoreinen statischenparameterDescriptors-Getter besitzt, wird das von ihm zurückgegebene Array vonAudioParamDescriptor-Objekten verwendet, umAudioParam-Objekte auf demAudioWorkletNodezu erstellen. Mit diesem Mechanismus können Sie eigeneAudioParam-Objekte über IhrenAudioWorkletNodezugänglich machen. Deren Werte können Sie anschließend im zugehörigenAudioWorkletProcessorverwenden.
Instanzmethoden
Erbt außerdem Methoden von der übergeordneten Schnittstelle AudioNode.
Die Schnittstelle AudioWorkletNode definiert keine eigenen Methoden.
Ereignisse
processorerror-
Wird ausgelöst, wenn im zugehörigen
AudioWorkletProcessorein Fehler auftritt. Danach geben der Prozessor und damit auch der Knoten für ihre gesamte verbleibende Lebensdauer Stille aus.
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);
Anschließend laden wir den Prozessor in unserer Hauptskriptdatei, erstellen eine Instanz von AudioWorkletNode, wobei wir den Namen des Prozessors übergeben, und verbinden den Knoten mit einem Audiographen.
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
| Spezifikation |
|---|
| Web Audio API> # AudioWorkletNode> |