Spec-Zone.ru › Web APIs

AudioWorkletГлобальнаяОбласть

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

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

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

Интерфейс AudioWorkletGlobalScope API Веб-аудио представляет собой глобальную среду выполнения для пользовательского кода, который определяет настраиваемые классы, производные от AudioWorkletProcessor.

Каждый BaseAudioContext имеет один AudioWorklet, доступный через свойство audioWorklet, который выполняет свой код в отдельной AudioWorkletGlobalScope.

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

WorkletГлобальнаяОбласть AudioWorkletГлобальнаяОбласть

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

Этот интерфейс также наследует свойства, определенные в родительском интерфейсе WorkletGlobalScope.

currentFrame Только для чтения

Возвращает целое число, представляющее постоянно увеличивающийся текущий образец кадра блока аудиосигнала, обрабатываемого в данный момент. Он увеличивается на 128 (размер кванта рендеринга) после обработки каждого блока аудиосигнала.

currentTime Только для чтения

Возвращает значение с плавающей точкой, представляющее постоянно увеличивающееся время контекста блока аудиосигнала, обрабатываемого в данный момент. Оно равно свойству currentTime BaseAudioContext, к которому принадлежит модуль работы.

sampleRate Только для чтения

Возвращает число с плавающей точкой, представляющее частоту дискретизации связанного BaseAudioContext.

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

Этот интерфейс также наследует методы, определенные в родительском интерфейсе WorkletGlobalScope.

registerProcessor()

Регистрирует класс, производный от интерфейса AudioWorkletProcessor. Затем этот класс можно использовать, создав AudioWorkletNode, передав его зарегистрированное имя.

Примеры

В этом примере мы выводим все глобальные свойства в консоль в конструкторе пользовательского AudioWorkletProcessor.

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

// AudioWorkletProcessor defined in : test-processor.js
class TestProcessor extends AudioWorkletProcessor {
  constructor() {
    super();

    // Logs the current sample-frame and time at the moment of instantiation.
    // They are accessible from the AudioWorkletGlobalScope.
    console.log(currentFrame);
    console.log(currentTime);
  }

  // The process method is required - output silence,
  // which the outputs are already filled with.
  process(inputs, outputs, parameters) {
    return true;
  }
}

// Logs the sample rate, that is not going to change ever,
// because it's a read-only property of a BaseAudioContext
// and is set only during its instantiation.
console.log(sampleRate);

// You can declare any variables and use them in your processors
// for example it may be an ArrayBuffer with a wavetable
const usefulVariable = 42;
console.log(usefulVariable);

registerProcessor("test-processor", TestProcessor);

Далее, в главном файле скриптов мы загрузим обработчик, создадим экземпляр AudioWorkletNode — передав ему имя обработчика — и подключим узел к аудиографике. Мы должны увидеть вывод вызовов console.log() в консоли:

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

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

Спецификация
API Веб-аудио
# AudioWorkletГлобальнаяОбласть

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на IOS Samsung Internet WebView Android
AudioWorkletGlobalScope 66 79 76 53 14.1 66 79 47 14.5 9.0 66
currentFrame 66 79 76 53 14.1 66 79 47 14.5 9.0 66
currentTime 66 79 76 53 14.1 66 79 47 14.5 9.0 66
registerProcessor 66 79 76 53 14.1 66 79 47 14.5 9.0 66
sampleRate 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/AudioWorkletGlobalScope

Spec-Zone.ru

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