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 nicht verfügbar, sodass benutzerdefinierte AudioWorkletProcessors außerhalb dieser Kontexte nicht definiert werden können.
Das AudioWorkletNode-Interface der Web Audio API repräsentiert eine Basisklasse für einen benutzerdefinierten AudioNode, der zusammen mit anderen Knoten mit einem Audio-Routing-Graph verbunden werden kann. Es gibt einen zugehörigen AudioWorkletProcessor, der die eigentliche Audioverarbeitung in einem Web Audio-Rendering-Thread durchführt.
Konstruktor
AudioWorkletNode()-
Erstellt eine neue Instanz eines
AudioWorkletNode-Objekts.
Instanz-Eigenschaften
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 unter derport-Eigenschaft des Prozessors verfügbar. AudioWorkletNode.parametersSchreibgeschützt-
Gibt ein
AudioParamMapzurück — eine Sammlung vonAudioParam-Objekten. Sie werden bei der Erstellung des zugrunde liegendenAudioWorkletProcessorinstanziiert. Wenn derAudioWorkletProcessoreinen statischenparameterDescriptors-Getter hat, wird das Array vonAudioParamDescriptor, das von diesem zurückgegeben wird, verwendet, umAudioParam-Objekte auf demAudioWorkletNodezu erstellen. Mit diesem Mechanismus ist es möglich, Ihre eigenenAudioParam-Objekte zugänglich von IhremAudioWorkletNodezu machen. Sie können dann deren Werte im zugehörigenAudioWorkletProcessorverwenden.
Ereignisse
processorerror-
Wird ausgelöst, wenn ein Fehler im zugehörigen
AudioWorkletProcessorgeworfen wird. Einmal ausgelöst, wird der Prozessor und damit der Knoten während seiner gesamten Lebensdauer Stille ausgeben.
Instanz-Methoden
Erbt auch Methoden von seinem Elternteil, AudioNode.
Das AudioWorkletNode-Interface definiert keine eigenen Methoden.
Beispiele
In diesem Beispiel erstellen wir einen benutzerdefinierten AudioWorkletNode, der zufällige Geräusche ausgibt.
Zuerst müssen wir einen benutzerdefinierten AudioWorkletProcessor definieren, der zufällige Geräusche 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 laden wir in unserer Hauptskriptdatei den Prozessor, erstellen eine Instanz von AudioWorkletNode, übergeben den Namen des Prozessors und verbinden den Knoten mit einem Audio-Graphen.
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> |
Browser-Kompatibilität
Loading…