Метод AudioParam: linearRampToValueAtTime()
Метод linearRampToValueAtTime() интерфейса AudioParam планирует плавное линейное изменение значения AudioParam. Изменение начинается во времени, указанном для предыдущего события, следует линейной кривой до нового значения, заданного в параметре value, и достигает нового значения ко времени, указанному в параметре endTime.
Синтаксис
linearRampToValueAtTime(value, 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);
};
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
linearRampToValueAtTime |
14 | 12 | 15 | 6 | 18Это устанавливает целевое значение громкости в указанное время, но не плавно переходит к нему, что заставляет эту функцию вести себя какsetValueAtTime(). |
14 | 6 | 1.0 | ≤37 | ||
См. также
© 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