AudioWorkletGlobalScope: метод registerProcessor()
Базовая поддержка Широко поддерживается
Эта функция хорошо отработана и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с апреля 2021 года.
Метод registerProcessor интерфейса AudioWorkletGlobalScope регистрирует конструктор класса, производного от интерфейса AudioWorkletProcessor, под указанным именем.
Синтаксис
registerProcessor(name, processorCtor)
Параметры
name-
Строка, представляющая имя, под которым будет зарегистрирован процессор.
processorCtor-
Конструктор класса, производного от
AudioWorkletProcessor.
Примечание: Пара { name: constructor } сохраняется внутри AudioWorkletGlobalScope после регистрации процессора. К имени необходимо обратиться при создании AudioWorkletNode, основанного на зарегистрированном процессоре. Внутренне создается новый процессор с заданным именем и связывается с новым узлом.
Возвращаемое значение
None (undefined).
Исключения
-
NotSupportedErrorDOMException -
Выбрасывается в следующих случаях:
- Имя (name) является пустой строкой.
- Конструктор с заданным именем уже зарегистрирован. Запись с одинаковым именем дважды запрещена.
TypeError-
Выбрасывается в следующих случаях:
- processorCtor не является вызываемым конструктором.
- Свойство
parameterDescriptorsконструктора существует и не возвращает массив объектов на основеAudioParamDescriptor.
Примеры
В этом примере мы создаем пользовательский AudioWorkletNode, который выводит тишину.
Сначала нужно определить пользовательский AudioWorkletProcessor и зарегистрировать его. Обратите внимание, что это следует делать в отдельном файле.
// test-processor.js
class TestProcessor extends AudioWorkletProcessor {
process(inputs, outputs, parameters) {
return true;
}
}
registerProcessor("test-processor", TestProcessor);
Далее, в главном скриптовом файле мы загрузим процессор, создадим экземпляр AudioWorkletNode — передав ему имя процессора, которое мы использовали при вызове registerProcessor — и подключим его к аудио графику.
const audioContext = new AudioContext();
await audioContext.audioWorklet.addModule("test-processor.js");
const node = new AudioWorkletNode(audioContext, "test-processor");
node.connect(audioContext.destination);
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
registerProcessor |
66 | 79 | 76 | 53 | 14.1 | 66 | 79 | 47 | 14.5 | 9.0 | 66 |
См. также
© 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/AudioWorkletGlobalScope/registerProcessor