Spec-Zone.ru › Web APIs

ScriptProcessorNode: событие audioprocess

Устаревшее: Эта функция больше не рекомендуется. Хотя некоторые браузеры могут её поддерживать, она может быть удалена из соответствующих веб-стандартов, может быть в процессе удаления или сохраняться только для совместимости. Избегайте её использования и, при возможности, обновите существующий код; обратитесь к таблице совместимости внизу этой страницы, чтобы принять решение. Имейте в виду, что эта функция может перестать работать в любое время.

Событие audioprocess интерфейса ScriptProcessorNode срабатывает, когда буфер ввода скрипт-процессора готов к обработке.

Примечание: Эта функция была заменена AudioWorklets и интерфейсом AudioWorkletNode.

Это событие не может быть отменено и не распространяется.

Тип события

Объект AudioProcessingEvent. Наследуется от Event.

Событие AudioProcessingEvent

Свойства события

Также реализует свойства, унаследованные от родителя, 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

См. также

  • Web Audio API

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API