Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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.

EventTarget AudioNode AudioWorkletNode

Konstruktor

AudioWorkletNode()

Erstellt eine neue Instanz eines AudioWorkletNode-Objekts.

Instanzeigenschaften

Erbt auch Eigenschaften von seinem Elternteil, AudioNode.

AudioWorkletNode.port Schreibgeschützt

Gibt einen MessagePort zurück, der für die bidirektionale Kommunikation zwischen dem Knoten und seinem zugehörigen AudioWorkletProcessor verwendet wird. Das andere Ende ist über die port-Eigenschaft des Prozessors verfügbar.

AudioWorkletNode.parameters Schreibgeschützt

Gibt ein AudioParamMap zurück — eine Sammlung von AudioParam-Objekten. Diese werden während der Erstellung des zugrundeliegenden AudioWorkletProcessor instanziiert. Wenn der AudioWorkletProcessor über einen statischen parameterDescriptors-Getter verfügt, wird das daraus zurückgegebene AudioParamDescriptor-Array verwendet, um AudioParam-Objekte auf dem AudioWorkletNode zu erstellen. Mit diesem Mechanismus ist es möglich, eigene AudioParam-Objekte zugänglich zu machen von Ihrem AudioWorkletNode. Sie können dann ihre Werte im zugehörigen AudioWorkletProcessor verwenden.

Ereignisse

processorerror

Wird ausgelöst, wenn im zugehörigen AudioWorkletProcessor ein 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.

js
// 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.

js
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

Siehe auch