ScriptProcessorNode: audioprocess-Ereignis

Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, könnte sie bereits aus den relevanten Webstandards entfernt worden sein, in Kürze entfernt werden oder nur noch aus Kompatibilitätsgründen bestehen. Vermeiden Sie die Verwendung und aktualisieren Sie vorhandenen Code, falls möglich; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu unterstützen. Beachten Sie, dass diese Funktion jederzeit aufhören könnte zu funktionieren.

Das audioprocess-Ereignis des ScriptProcessorNode-Interfaces wird ausgelöst, wenn ein Eingabepuffer eines Script-Prozessors bereit zur Verarbeitung ist.

Hinweis: Diese Funktion wurde durch AudioWorklets und das AudioWorkletNode-Interface ersetzt.

Dieses Ereignis kann nicht abgebrochen werden und wird nicht gebubbelt.

Syntax

Verwenden Sie den Ereignisnamen in Methoden wie addEventListener() oder setzen Sie eine Ereignis-Handler-Eigenschaft.

js
addEventListener("audioprocess", (event) => { })

onaudioprocess = (event) => { }

Ereignistyp

Ereigniseigenschaften

Implementiert auch die von seinem Elternteil Event geerbten Eigenschaften.

playbackTime Schreibgeschützt

Ein Double, das die Zeit darstellt, zu der das Audio abgespielt wird, definiert durch die Zeit von AudioContext.currentTime.

inputBuffer Schreibgeschützt

Ein AudioBuffer, der den Puffer darstellt, der die zu verarbeitenden Eingabedaten enthält. Die Anzahl der Kanäle wird als Parameter numberOfInputChannels der Fabrikmethode AudioContext.createScriptProcessor() definiert. Beachten Sie, dass der zurückgegebene AudioBuffer nur im Gültigkeitsbereich des Ereignis-Handlers gültig ist.

outputBuffer Schreibgeschützt

Ein AudioBuffer, der der Puffer ist, in den die Ausgabedaten geschrieben werden sollen. Die Anzahl der Kanäle wird als Parameter numberOfOutputChannels der Fabrikmethode AudioContext.createScriptProcessor() definiert. Beachten Sie, dass der zurückgegebene AudioBuffer nur im Gültigkeitsbereich des Ereignis-Handlers gültig ist.

Beispiele

js
scriptNode.addEventListener("audioprocess", (audioProcessingEvent) => {
  // The input buffer is a song we loaded earlier
  const inputBuffer = audioProcessingEvent.inputBuffer;

  // The output buffer contains the samples that will be modified and played
  const outputBuffer = audioProcessingEvent.outputBuffer;

  // Loop through the output channels (in this case there is only one)
  for (let channel = 0; channel < outputBuffer.numberOfChannels; channel++) {
    const inputData = inputBuffer.getChannelData(channel);
    const outputData = outputBuffer.getChannelData(channel);

    // Loop through the 4096 samples
    for (let sample = 0; sample < inputBuffer.length; sample++) {
      // make output equal to the same as the input
      outputData[sample] = inputData[sample];

      // add noise to each output sample
      outputData[sample] += (Math.random() * 2 - 1) * 0.2;
    }
  }
});

Sie könnten den Ereignis-Handler auch mit der onaudioprocess-Eigenschaft einrichten:

js
scriptNode.onaudioprocess = (audioProcessingEvent) => {
  // …
};

Spezifikationen

No specification found

No specification data found for api.ScriptProcessorNode.audioprocess_event.
Check for problems with this page or contribute a missing spec_url to mdn/browser-compat-data. Also make sure the specification is included in w3c/browser-specs.

Browser-Kompatibilität

Siehe auch