AudioParam.setValueCurveAtTime() - поступове змінення значеня з лінійної інтерполяції між послідовністю значень.
AudioParam.setValueCurveAtTime(values, startTime, timeConstant);
AudioParam - об'єкт AudioParam.
values - значення Float32Array, що представляє криву переходу значень.
startTime - час в секундах коли розпочнеться перехід, в той же час система координат як AudioContext.currentTime. Якщо він менше або дорівнює AudioContext.currentTime, параметр буде змінено негайно.
duration - тривалість переходу в секундах.
setValueCurveAtTime() метод об'єкту AudioParam який змінює поступово значення параметру за вказани послідовностями значень переходу.
Повертає посилання на об'єкт AudioParam. Деякі браузери повертають undefined.
<audio id="player" src="/dani/test.ogg"></audio>
Приклад зміни рівня звуку у вказаний час:
if(window.AudioContext){
var audio=new AudioContext();
var player=document.getElementById('player');
var source=audio.createMediaElementSource(player);
var gain=audio.createGain();
source.connect(gain);
gain.connect(audio.destination);
player.play();
var wav = new Float32Array(5);
wav[0]=0.2;
wav[1]=0.4;
wav[2]=0.8;
wav[3]=0.6;
wav[4]=0.2;
gain.gain.setValueCurveAtTime(wav, audio.currentTime + 1, 10); //встановлюємо зміну значень відносно масиву значень переходу, з 1 секунди відтворення, тривалістю 10 с.
}else alert('Ваш браузер не підтримує Web Audio');