Spec-Zone.ru › Web APIs

AudioWorkletNode

Базовая Широко доступна

Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузера. Она доступна во всех браузерах с апреля 2021 года.

  • Узнать больше
  • Полная совместимость
  • Отправить отзыв

Безопасный контекст: Эта функция доступна только в безопасных контекстах (HTTPS) в некоторых или во всех поддерживающих браузерах.

Примечание: Хотя интерфейс доступен вне безопасных контекстов, свойство BaseAudioContext.audioWorklet нет, поэтому пользовательские AudioWorkletProcessor нельзя определять вне их.

Интерфейс AudioWorkletNode API Веб-аудио представляет собой базовый класс для пользовательского AudioNode, который можно подключить к графику аудио маршрутизации вместе с другими узлами. У него есть связанный AudioWorkletProcessor, который выполняет фактическую обработку аудио в потоке обработки рендеринга Веб-аудио.

EventTarget AudioNode AudioWorkletNode

Конструктор

AudioWorkletNode()

Создаёт новый экземпляр объекта AudioWorkletNode.

Свойства экземпляра

Также наследует свойства от родительского класса, AudioNode.

AudioWorkletNode.port Только для чтения

Возвращает MessagePort, используемый для двустороннего обмена сообщениями между узлом и его связанным AudioWorkletProcessor. Другой конец доступен в свойстве port процессора.

AudioWorkletNode.parameters Только для чтения

Возвращает AudioParamMap — коллекцию объектов AudioParam. Они создаются при создании базового AudioWorkletProcessor. Если у AudioWorkletProcessor есть статический метод-геттер parameterDescriptors, массив AudioParamDescriptor, возвращаемый им, используется для создания объектов AudioParam в AudioWorkletNode. С помощью этого механизма можно сделать собственные объекты AudioParam доступными из вашего AudioWorkletNode. Затем вы можете использовать их значения в связанном AudioWorkletProcessor.

События

processorerror

Срабатывает, когда в связанном AudioWorkletProcessor возникает ошибка. После срабатывания процессор, а следовательно, и узел, будут выдавать тишину в течение всей своей жизни.

Методы экземпляра

Также наследует методы от родительского класса, AudioNode.

Интерфейс AudioWorkletNode не определяет собственных методов.

Примеры

В этом примере мы создаём пользовательский AudioWorkletNode, который выводит случайный шум.

Сначала нам нужно определить пользовательский AudioWorkletProcessor, который будет выводить случайный шум, и зарегистрировать его. Обратите внимание, что это следует делать в отдельном файле.

// random-noise-processor.js
class RandomNoiseProcessor extends AudioWorkletProcessor {
  process(inputs, outputs, parameters) {
    const output = outputs[0];
    output.forEach((channel) => {
      for (let i = 0; i < channel.length; i++) {
        channel[i] = Math.random() * 2 - 1;
      }
    });
    return true;
  }
}

registerProcessor("random-noise-processor", RandomNoiseProcessor);

Затем в нашем основном файле скрипта мы загрузим процессор, создадим экземпляр AudioWorkletNode, передав ему имя процессора, и подключим узел к аудио-графу.

const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("random-noise-processor.js");
const randomNoiseNode = new AudioWorkletNode(
  audioContext,
  "random-noise-processor",
);
randomNoiseNode.connect(audioContext.destination);

Спецификации

Спецификация
API Веб-аудио
# AudioWorkletNode

Совместимость с браузерами

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
AudioWorkletNode 66 79 76 53 14.1 66 79 47 14.5 9.0 66
AudioWorkletNode 66 79 76 53 14.1 66 79 47 14.5 9.0 66
parameters 66 79 76 53 14.1 66 79 47 14.5 9.0 66
port 66 79 76 53 14.1 66 79 47 14.5 9.0 66
processorerror_event 66 79 76 53 14.1 66 79 47 14.5 9.0 66

См. также

  • API Веб-аудио
  • Использование API Веб-аудио
  • Использование AudioWorklet

© 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/AudioWorkletNode

Spec-Zone.ru

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