Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
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 insicheren Kontexten (HTTPS) in einigen oder allenunterstützenden Browsern verfügbar.
Hinweis:Obwohl die Schnittstelle außerhalb vonsicheren Kontexten verfügbar ist, ist die EigenschaftBaseAudioContext.audioWorklet es nicht, daher können benutzerdefinierteAudioWorkletProcessors außerhalb dieser nicht definiert werden.
DieAudioWorkletNode-Schnittstelle derWeb Audio API stellt eine Basisklasse für einen benutzerdefiniertenAudioNode dar, der zusammen mit anderen Knoten in ein Audio-Routing-Graph verbunden werden kann. Sie hat einen zugehörigenAudioWorkletProcessor, der die tatsächliche Audioverarbeitung in einem Web-Audio-Rendering-Thread durchführt.
In diesem Artikel
Konstruktor
AudioWorkletNode()Erstellt eine neue Instanz eines
AudioWorkletNode-Objekts.
Instanzeigenschaften
Erbt auch Eigenschaften von seinem Elternteil,AudioNode.
AudioWorkletNode.portSchreibgeschütztGibt 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ütztGibt 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
processorerrorWird 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.
DieAudioWorkletNode-Schnittstelle definiert keine eigenen Methoden.
Beispiele
In diesem Beispiel erstellen wir einen benutzerdefiniertenAudioWorkletNode, der zufälliges Rauschen ausgibt.
Zuerst müssen wir einen benutzerdefiniertenAudioWorkletProcessor definieren, der zufälliges Rauschen ausgibt, und ihn registrieren. Beachten Sie, dass dies in einer separaten Datei erfolgen sollte.
// random-noise-processor.jsclass 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 vonAudioWorkletNode 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> |