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

EventTarget AudioNode AudioWorkletNode

Konstruktor

AudioWorkletNode()

Erstellt eine neue Instanz eines AudioWorkletNode-Objekts.

Instanzeigenschaften

Erbt außerdem Eigenschaften von der übergeordneten Schnittstelle AudioNode.

AudioWorkletNode.port Schreibgeschützt

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

AudioWorkletNode.parameters Schreibgeschützt

Gibt eine AudioParamMap zurück – eine Sammlung von AudioParam-Objekten. Diese werden bei der Erstellung des zugrunde liegenden AudioWorkletProcessor instanziiert. Wenn der AudioWorkletProcessor einen statischen parameterDescriptors-Getter besitzt, wird das von ihm zurückgegebene Array von AudioParamDescriptor-Objekten verwendet, um AudioParam-Objekte auf dem AudioWorkletNode zu erstellen. Mit diesem Mechanismus können Sie eigene AudioParam-Objekte über Ihren AudioWorkletNode zugänglich machen. Deren Werte können Sie anschließend im zugehörigen AudioWorkletProcessor verwenden.

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 AudioWorkletProcessor ein 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.

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);

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.

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

Spezifikation
Web Audio API
# AudioWorkletNode

Browser-Kompatibilität

Siehe auch