Spec-Zone.ru › Web APIs

Метод AudioParam: linearRampToValueAtTime()

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

Синтаксис

linearRampToValueAtTime(value, endTime)

Параметры

value

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

endTime

Число с двойной точностью, представляющее точное время (в секундах) после начала изменения, когда изменение значения прекратится.

Возвращаемое значение

Ссылка на этот объект AudioParam. В некоторых браузерах в более старых реализациях этого интерфейса возвращается undefined.

Примеры

В этом примере есть источник медиа с двумя кнопками управления (см. репозиторий audio-param для исходного кода или просмотр примера в браузере.) При нажатии на эти кнопки используется linearRampToValueAtTime() для плавного увеличения значения усиления до 1.0 и уменьшения до 0 соответственно. Это довольно полезно для эффектов плавного входа/выхода, хотя AudioParam.exponentialRampToValueAtTime() часто считается более естественным.

// create audio context
const audioCtx = new AudioContext();

// set basic variables for example
const myAudio = document.querySelector("audio");

const linearRampPlus = document.querySelector(".linear-ramp-plus");
const linearRampMinus = document.querySelector(".linear-ramp-minus");

// Create a MediaElementAudioSourceNode
// Feed the HTMLMediaElement into it
const source = audioCtx.createMediaElementSource(myAudio);

// Create a gain node and set its gain value to 0.5
const gainNode = audioCtx.createGain();

// connect the AudioBufferSourceNode to the gainNode
// and the gainNode to the destination
gainNode.gain.setValueAtTime(0, audioCtx.currentTime);
source.connect(gainNode);
gainNode.connect(audioCtx.destination);

// set buttons to do something onclick
linearRampPlus.onclick = () => {
  gainNode.gain.linearRampToValueAtTime(1.0, audioCtx.currentTime + 2);
};

linearRampMinus.onclick = () => {
  gainNode.gain.linearRampToValueAtTime(0, audioCtx.currentTime + 2);
};

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

Спецификация
Web Audio API
# dom-audioparam-linearramptovalueattime

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

Рабочие столы Мобильные устройства
Chrome Edge Firefox Opera Safari Chrome Android Firefox для Android Opera Android Safari на iOS Samsung Internet WebView Android
linearRampToValueAtTime 14 12
25Не работает (см. ошибку 1171438 и ошибку 1567777).
15 6
18Это устанавливает целевое значение громкости в указанное время, но не плавно переходит к нему, что заставляет эту функцию вести себя как setValueAtTime().
25Не работает (см. ошибку 1171438 и ошибку 1567777).
14 6 1.0 ≤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/linearRampToValueAtTime

Spec-Zone.ru

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