AudioParam:linearRampToValueAtTime() 方法
AudioParam 介面的 linearRampToValueAtTime() 方法安排 AudioParam 值進行平滑的線性變化。此變化從上一個事件指定的時間開始,按照指定的斜率進行線性增長,在 value 引數給出的新值處達到目標,並在 endTime 引數給定的時間點完成。
語法
js
linearRampToValueAtTime(value, endTime)
引數
返回值
對該 AudioParam 物件的引用。在某些瀏覽器中,此介面的舊實現會返回 undefined。
示例
在此示例中,我們有一個具有兩個控制按鈕的媒體源(有關原始碼,請參閱 audio-param 倉庫,或線上檢視示例。)當按下這些按鈕時,linearRampToValueAtTime() 分別用於將增益值漸入到 1.0 和漸出到 0。這對於漸入/漸出效果非常有用,儘管 AudioParam.exponentialRampToValueAtTime() 通常被認為更自然一些。
js
// 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 |
瀏覽器相容性
載入中…