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 Scriptprozessors bereit zur Verarbeitung ist.
Hinweis:
Diese Funktion wurde durch AudioWorklets und die AudioWorkletNode
-Schnittstelle ersetzt.
Dieses Ereignis kann nicht abgebrochen werden und wird nicht weitergeleitet.
Syntax
Verwenden Sie den Ereignisnamen in Methoden wie addEventListener()
oder setzen Sie eine Ereignishandler-Eigenschaft.
addEventListener("audioprocess", (event) => { })
onaudioprocess = (event) => { }
Ereignistyp
Ein AudioProcessingEvent
. Erbt von Event
.
Ereigniseigenschaften
Setzt auch die Eigenschaften des übergeordneten Objekts Event
um.
playbackTime
Schreibgeschützt-
Ein Double-Wert, der die Zeit darstellt, zu der das Audio wiedergegeben wird, definiert durch die Zeit von
AudioContext.currentTime
. inputBuffer
Schreibgeschützt-
Ein
AudioBuffer
, der den Puffer mit den zu verarbeitenden Eingabedaten enthält. Die Anzahl der Kanäle wird als ParameternumberOfInputChannels
der FabrikmethodeAudioContext.createScriptProcessor()
definiert. Beachten Sie, dass der zurückgegebeneAudioBuffer
nur im Bereich des Ereignishandlers gültig ist. outputBuffer
Schreibgeschützt-
Ein
AudioBuffer
, der den Puffer darstellt, in den die Ausgabedaten geschrieben werden sollen. Die Anzahl der Kanäle wird als ParameternumberOfOutputChannels
der FabrikmethodeAudioContext.createScriptProcessor()
definiert. Beachten Sie, dass der zurückgegebeneAudioBuffer
nur im Bereich des Ereignishandlers gültig ist.
Beispiele
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önnen den Ereignishandler auch über die onaudioprocess
-Eigenschaft einrichten:
scriptNode.onaudioprocess = (audioProcessingEvent) => {
// …
};
Spezifikationen
Seit der Veröffentlichung der Web Audio API-Spezifikation am 29. August 2014 wurde diese Funktion als veraltet markiert. Sie wird nicht mehr als Standard geführt.
Sie wurde durch AudioWorklets und die AudioWorkletNode
-Schnittstelle ersetzt.