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 der ScriptProcessorNode-Schnittstelle wird ausgelöst, wenn ein Eingabepuffer eines Script-Prozessors zur Verarbeitung bereit ist.

Hinweis: Diese Funktion wurde durch AudioWorklets und die AudioWorkletNode-Schnittstelle ersetzt.

Dieses Ereignis ist nicht abbruchfähig und wird nicht weitergeleitet.

Ereignistyp

Ereigniseigenschaften

Erbt auch die Eigenschaften von seinem Elternteil, Event.

playbackTime Schreibgeschützt

Ein Doppelwert, der die Zeit darstellt, wann das Audio abgespielt wird, wie durch die Zeit von AudioContext.currentTime definiert.

inputBuffer Schreibgeschützt

Ein AudioBuffer, der den Puffer enthält, der die zu verarbeitenden Audioeingabedaten enthält. Die Anzahl der Kanäle wird als Parameter numberOfInputChannels in der Fabrikmethode AudioContext.createScriptProcessor() definiert. Beachten Sie, dass der zurückgegebene AudioBuffer nur im Geltungsbereich des Ereignishandlers gültig ist.

outputBuffer Schreibgeschützt

Ein AudioBuffer, der der Puffer ist, in den die Audioausgabedaten geschrieben werden sollen. Die Anzahl der Kanäle wird als Parameter numberOfOutputChannels in der Fabrikmethode AudioContext.createScriptProcessor() definiert. Beachten Sie, dass der zurückgegebene AudioBuffer nur im Geltungsbereich des Ereignishandlers 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 Ereignishandler auch mit der onaudioprocess-Eigenschaft einrichten:

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

Spezifikationen

Seit der Veröffentlichung der Web Audio API-Spezifikation am 29. August 2014, ist diese Funktion veraltet. Sie ist nicht mehr auf dem Weg, ein Standard zu werden.

Es wurde durch AudioWorklets und die AudioWorkletNode-Schnittstelle ersetzt.

Browser-Kompatibilität

Siehe auch