ScriptProcessorNode: событие audioprocess
Устаревшее: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её поддерживать, она может быть удалена из соответствующих веб-стандартов, может быть в процессе удаления или сохраняться только для совместимости. Избегайте её использования и, при возможности, обновите существующий код; обратитесь к таблице совместимости внизу этой страницы, чтобы принять решение. Имейте в виду, что эта функция может перестать работать в любое время.
Событие audioprocess интерфейса ScriptProcessorNode срабатывает, когда буфер ввода скрипт-процессора готов к обработке.
Примечание: Эта функция была заменена AudioWorklets и интерфейсом AudioWorkletNode.
Это событие не может быть отменено и не распространяется.
Тип события
Объект AudioProcessingEvent. Наследуется от Event.
Свойства события
Также реализует свойства, унаследованные от родителя, Event.
playbackTimeТолько для чтения-
Число с плавающей точкой, представляющее время воспроизведения, как определено временем
AudioContext.currentTime. inputBufferТолько для чтения-
AudioBuffer, содержащий буфер входных аудиоданных, подлежащих обработке. Количество каналов определяется как параметрnumberOfInputChannels, метода-фабрикиAudioContext.createScriptProcessor(). Обратите внимание, что возвращённыйAudioBufferдействителен только в контексте обработчика события. outputBufferТолько для чтения-
AudioBuffer, являющийся буфером, в который должны быть записаны выходные аудиоданные. Количество каналов определяется как параметр,numberOfOutputChannels, метода-фабрикиAudioContext.createScriptProcessor(). Обратите внимание, что возвращённыйAudioBufferдействителен только в контексте обработчика события.
Примеры
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;
}
}
});
Вы также можете настроить обработчик события, используя свойство onaudioprocess:
scriptNode.onaudioprocess = (audioProcessingEvent) => {
// ...
};
Спецификации
С момента публикации спецификации Web Audio API от 29 августа 2014 года эта функция устарела. Она больше не планируется стать стандартом.
Она была заменена AudioWorklets и интерфейсом AudioWorkletNode.
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
audioprocess_event |
24 | 12 | 25 | 15 | 7 | 25 | 25 | 14 | 7 | 1.5 | ≤37 |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/ScriptProcessorNode/audioprocess_event