ScriptProcessorNode: audioprocess-Ereignis
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.
Das audioprocess
-Ereignis der ScriptProcessorNode
-Schnittstelle wird ausgelöst, wenn ein Eingabepuffer eines Script-Processors zur Verarbeitung bereit ist.
Hinweis: Diese Funktion wurde durch AudioWorklets und die AudioWorkletNode
-Schnittstelle ersetzt.
Dieses Ereignis ist nicht abbrechbar und wird nicht weitergeleitet.
Ereignistyp
Ein AudioProcessingEvent
. Erbt von Event
.
Ereigniseigenschaften
Implementiert auch die Eigenschaften, die von seinem Elternteil, Event
, geerbt werden.
playbackTime
Nur lesbar-
Ein Double-Wert, der die Zeit angibt, wann das Audio abgespielt wird, definiert durch die Zeit von
AudioContext.currentTime
. inputBuffer
Nur lesbar-
Ein
AudioBuffer
, der den Eingabepuffer mit den zu verarbeitenden Audiodaten enthält. Die Anzahl der Kanäle wird als ParameternumberOfInputChannels
der FabrikmethodeAudioContext.createScriptProcessor()
definiert. Beachten Sie, dass der zurückgegebeneAudioBuffer
nur im Rahmen des Ereignishandlers gültig ist. outputBuffer
Nur lesbar-
Ein
AudioBuffer
, der der Puffer ist, 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 Rahmen 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önnten 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 ist diese Funktion veraltet. Sie ist nicht mehr auf dem Weg, ein Standard zu werden.
Sie wurde durch AudioWorklets und die AudioWorkletNode
-Schnittstelle ersetzt.
Browser-Kompatibilität
BCD tables only load in the browser