AudioProcessingEvent: outputBuffer-Eigenschaft

Veraltet: Diese Funktion wird nicht mehr empfohlen. Obwohl einige Browser sie möglicherweise noch unterstützen, kann sie bereits aus den relevanten Webstandards entfernt worden sein, befindet sich im Prozess der Entfernung oder wird nur aus Kompatibilitätsgründen beibehalten. Vermeiden Sie die Verwendung und aktualisieren Sie gegebenenfalls bestehenden Code; siehe die Kompatibilitätstabelle am Ende dieser Seite, um Ihre Entscheidung zu treffen. Beachten Sie, dass diese Funktion jederzeit nicht mehr funktionieren kann.

Die outputBuffer-Eigenschaft der schreibgeschützten AudioProcessingEvent-Schnittstelle repräsentiert den Ausgabe-Puffer eines Audiobearbeitungsereignisses.

Der Ausgabe-Puffer wird durch ein AudioBuffer-Objekt dargestellt, das eine Sammlung von Audiokanälen enthält, von denen jeder ein Array von Gleitkommawerten ist, das die Audio-Signalwellenform darstellt, die als eine Reihe von Amplituden kodiert ist. Die Anzahl der Kanäle und die Länge jedes Kanals werden durch die Kanälenanzahl und die Puffergrößeigenschaften des AudioBuffer bestimmt.

Wert

Ein AudioBuffer-Objekt.

Beispiele

In diesem Beispiel wird ein ScriptProcessorNode mit einer Puffergröße von 256 Samples, 2 Eingabekanälen und 2 Ausgabekanälen erstellt. Wenn ein audioprocess-Ereignis ausgelöst wird, werden die Eingabe- und Ausgabe-Puffer aus dem Ereignisobjekt abgerufen. Die Audiodaten im Eingabepuffer werden verarbeitet, und das Ergebnis wird in den Ausgabe-Puffer geschrieben. In diesem Fall werden die Audiodaten um den Faktor 0,5 skaliert.

js
const audioContext = new AudioContext();
const processor = audioContext.createScriptProcessor(256, 2, 2);

processor.addEventListener("audioprocess", (event) => {
  const inputBuffer = event.inputBuffer;
  const outputBuffer = event.outputBuffer;

  for (let channel = 0; channel < outputBuffer.numberOfChannels; channel++) {
    const inputData = inputBuffer.getChannelData(channel);
    const outputData = outputBuffer.getChannelData(channel);

    // Process the audio data here
    for (let i = 0; i < outputBuffer.length; i++) {
      outputData[i] = inputData[i] * 0.5;
    }
  }
});

processor.connect(audioContext.destination);

Spezifikationen

Specification
Web Audio API
# dom-audioprocessingevent-outputbuffer

Browser-Kompatibilität

BCD tables only load in the browser

Siehe auch