Movatterモバイル変換


[0]ホーム

URL:


  1. Web
  2. Web-APIs
  3. AudioWorkletNode
  4. parameters

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

View in EnglishAlways switch to English

AudioWorkletNode: parameters-Eigenschaft

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.

Die schreibgeschützteparameters-Eigenschaft derAudioWorkletNode-Schnittstelle gibt die zugehörigeAudioParamMap zurück — also eineMap-ähnliche Sammlung vonAudioParam-Objekten. Diese werden während der Erstellung des zugrunde liegendenAudioWorkletProcessor gemäß seinemparameterDescriptors statischen Getter instanziiert.

Wert

DasAudioParamMap-Objekt, dasAudioParam-Instanzen enthält. Sie können auf die gleiche Weise wie bei Standard-AudioNodes automatisiert werden, und ihre berechneten Werte können in derprocess-Methode IhresAudioWorkletProcessor verwendet werden.

Beispiele

Um die Erstellung und Verwendung benutzerdefinierterAudioParams zu demonstrieren, erweitern wir das Beispiel von derAudioWorkletNode-Seite. Dort haben wir einen einfachen Knoten erstellt, der weißes Rauschen ausgibt. Hier werden wir zusätzlich einen benutzerdefinierten Gain-Parameter erstellen, damit wir die Lautstärke des Outputs direkt ändern können (obwohl Sie dafür auchGainNode verwenden könnten).

Zuerst müssen wir einen benutzerdefiniertenAudioWorkletProcessor definieren und registrieren. Beachten Sie, dass dies in einer separaten Datei erfolgen sollte.

Wir erweitern den Prozessor, indem wir einen statischenparameterDescriptors Getter hinzufügen. Dieser wird intern vomAudioWorkletNode-Konstruktor verwendet, um seineparameters mit instanziiertenAudioParam-Objekten zu füllen.

js
// white-noise-processor.jsclass WhiteNoiseProcessor extends AudioWorkletProcessor {  static get parameterDescriptors() {    return [      {        name: "customGain",        defaultValue: 1,        minValue: 0,        maxValue: 1,        automationRate: "a-rate",      },    ];  }  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) *          (parameters["customGain"].length > 1            ? parameters["customGain"][i]            : parameters["customGain"][0]);        // note: a parameter contains an array of 128 values (one value for each of 128 samples),        // however it may contain a single value which is to be used for all 128 samples        // if no automation is scheduled for the moment.      }    });    return true;  }}registerProcessor("white-noise-processor", WhiteNoiseProcessor);

Als nächstes laden wir in unserer Hauptskriptdatei den Prozessor, erstellen eine Instanz vonAudioWorkletNode, übergeben ihm den Namen des Prozessors und verbinden den Knoten mit einem Audiographen.

js
const audioContext = new AudioContext();await audioContext.audioWorklet.addModule("white-noise-processor.js");const whiteNoiseNode = new AudioWorkletNode(  audioContext,  "white-noise-processor",);whiteNoiseNode.connect(audioContext.destination);

Nun können wir den Gain am Knoten so ändern:

js
const gainParam = whiteNoiseNode.parameters.get("customGain");gainParam.setValueAtTime(0, audioContext.currentTime);gainParam.linearRampToValueAtTime(0.5, audioContext.currentTime + 0.5);

Spezifikationen

Specification
Web Audio API
# dom-audioworkletnode-parameters

Browser-Kompatibilität

Siehe auch

Help improve MDN

Learn how to contribute Diese Seite wurde automatisch aus dem Englischen übersetzt.

[8]ページ先頭

©2009-2025 Movatter.jp