Spec-Zone.ru › Web APIs

AudioParam

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

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

* Некоторые части этой функции могут иметь различный уровень поддержки.

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

Интерфейс AudioParam API Web Audio представляет собой параметр, связанный со звуком, обычно параметр AudioNode (например, GainNode.gain).

Параметр AudioParam может быть задан определённым значением или изменением значения, а также может быть запланирован на определённое время и по определённому шаблону.

У каждого AudioParam есть список событий, изначально пустой, определяющий, когда и как значения изменяются. Когда этот список не пустой, изменения, использующие атрибуты AudioParam.value, игнорируются. Этот список событий позволяет планировать изменения, которые должны произойти в очень точное время, используя произвольные кривые автоматизации на основе временной шкалы. Используемое время определяется в AudioContext.currentTime.

Типы AudioParam

Существует два типа: параметры a-rate и k-rate. Каждый AudioNode определяет, какие из его параметров являются a-rate или k-rate в спецификации.

a-rate

Параметр a-rate AudioParam принимает текущее значение параметра аудио для каждого кадра образца аудиосигнала.

k-rate

Параметр k-rate AudioParam использует одно начальное значение параметра аудио для всего блока, обрабатываемого; то есть 128 кадров образцов. Другими словами, одно и то же значение применяется ко всем кадрам аудио при обработке узлом.

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

AudioParam.defaultValue Только для чтения

Представляет начальное значение атрибута, как определено конкретным AudioNode, создающим AudioParam.

AudioParam.maxValue Только для чтения

Представляет максимальное возможное значение для номинального (эффективного) диапазона параметра.

AudioParam.minValue Только для чтения

Представляет минимальное возможное значение для номинального (эффективного) диапазона параметра.

AudioParam.value

Представляет текущее значение параметра на текущее время; изначально установлено в значение defaultValue.

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

AudioParam.setValueAtTime()

Планирует мгновенное изменение значения AudioParam в точное время, измеренное относительно AudioContext.currentTime. Новое значение задаётся параметром value.

AudioParam.linearRampToValueAtTime()

Планирует постепенное линейное изменение значения AudioParam. Изменение начинается в момент времени, указанный для предыдущего события, следует линейной кривой до нового значения, заданного в параметре value, и достигает нового значения в момент времени, указанный в параметре endTime.

AudioParam.exponentialRampToValueAtTime()

Планирует постепенное экспоненциальное изменение значения AudioParam. Изменение начинается в момент времени, указанный для предыдущего события, следует экспоненциальной кривой до нового значения, заданного в параметре value, и достигает нового значения в момент времени, указанный в параметре endTime.

AudioParam.setTargetAtTime()

Планирует начало изменения значения AudioParam. Изменение начинается в момент времени, указанный в startTime, и экспоненциально приближается к значению, заданному параметром target. Скорость экспоненциального затухания задаётся параметром timeConstant, который измеряется в секундах.

AudioParam.setValueCurveAtTime()

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

AudioParam.cancelScheduledValues()

Отменяет все запланированные будущие изменения значения AudioParam.

AudioParam.cancelAndHoldAtTime()

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

Примеры

Сначала базовый пример, показывающий GainNode, у которого установлено значение gain. gain — это пример параметра a-rate AudioParam, так как значение может быть установлено по-разному для каждого кадра образца аудио.

const audioCtx = new AudioContext();

const gainNode = audioCtx.createGain();
gainNode.gain.value = 0;

Далее пример, показывающий DynamicsCompressorNode с изменёнными значениями параметров. Это примеры типов параметров k-rate AudioParam , так как значения устанавливаются для всего аудио-блока сразу.

const compressor = audioCtx.createDynamicsCompressor();
compressor.threshold.setValueAtTime(-50, audioCtx.currentTime);
compressor.knee.setValueAtTime(40, audioCtx.currentTime);
compressor.ratio.setValueAtTime(12, audioCtx.currentTime);
compressor.attack.setValueAtTime(0, audioCtx.currentTime);
compressor.release.setValueAtTime(0.25, audioCtx.currentTime);

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

Спецификация
Web Audio API
# AudioParam

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

Рабочий стол Мобильный телефон
Chrome Edge Firefox Opera Safari Chrome Android Firefox for Android Opera Android Safari на IOS Samsung Internet WebView Android
AudioParam 14 12 25 15 6 18 25 14 6 1.0 ≤37
automationRate 68 79 Нет 55 14 68 Нет 48 14 10.0 68
cancelAndHoldAtTime 57 79 Нет 44 14.1 57 Нет 43 14.5 7.0 57
cancelScheduledValues 14 12 25 15 6 18 25 14 6 1.0 ≤37
defaultValue 14 12 25 15 6 18 25 14 6 1.0 ≤37
exponentialRampToValueAtTime 14 12
25Не работает (см. ошибку 1171438 и ошибку 1567777).
15 6
18Устанавливает целевое значение громкости в указанное время, но не выполняет плавную регулировку, что приводит к поведению функции, подобному setValueAtTime().
25Не работает (см. ошибку 1171438 и ошибку 1567777).
14 6 1.0 ≤37
linearRampToValueAtTime 14 12
25Не работает (см. ошибку 1171438 и ошибку 1567777).
15 6
18Устанавливает целевое значение громкости в указанное время, но не выполняет плавную регулировку, что приводит к поведению функции, подобному setValueAtTime().
25Не работает (см. ошибку 1171438 и ошибку 1567777).
14 6 1.0 ≤37
maxValue 52 79 53 39 6 52 53 41 6 6.0 52
minValue 52 79 53 39 6 52 53 41 6 6.0 52
setTargetAtTime 14 12 25 15 6 18 25 14 6 1.0 ≤37
setValueAtTime 14 12 25 15 6 18 25 14 6 1.0 ≤37
setValueCurveAtTime 14 12 25 15 6 18 25 14 6 1.0 ≤37
value
14В версиях ранее 66, значение усиления GainNode выполняло плавную интерполяцию для предотвращения «защелкивания» (вместо мгновенного изменения).
12
25["В Firefox 134 и ранее, установка value игнорировалась, когда выполнялась одновременно с запланированными событиями автоматизации.", "В Firefox 69 и ранее, value не учитывало запланированные или градиентные изменения значения параметра; вместо этого возвращались только явно установленные значения."]
15В версиях ранее 53, значение усиления GainNode выполняло плавную интерполяцию для предотвращения «защелкивания» (вместо мгновенного изменения).
6
18В версиях ранее 66, значение усиления GainNode выполняло плавную интерполяцию для предотвращения «защелкивания» (вместо мгновенного изменения).
25Firefox for Android в настоящее время не учитывает запланированные или градиентные изменения значения параметра; возвращается только начальное значение или последнее явно установленное значение.
14В версиях ранее 47, значение усиления GainNode выполняло плавную интерполяцию для предотвращения «защелкивания» (вместо мгновенного изменения).
6
1.0В версиях ранее 9.0, значение усиления GainNode выполняло плавную интерполяцию для предотвращения «защелкивания» (вместо мгновенного изменения).
≤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/AudioParam

Spec-Zone.ru

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