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 |
浏览器兼容性
加载中…