BaseAudioContext:createDelay() 方法
基线 广泛可用
此功能已得到良好建立,并在许多设备和浏览器版本中运行。它自 2021 年 4 月.
报告反馈
createDelay()
方法是 BaseAudioContext
接口的一种方法,用于创建一个 DelayNode
,它用于将传入的音频信号延迟一定的时间。
语法
注意:
DelayNode()
构造函数是创建 DelayNode
的推荐方法;请参见 创建 AudioNode。createDelay(maxDelayTime)
js
- 参数
-
maxDelayTime
可选
音频信号可以延迟的最大时间,以秒为单位。必须小于 180 秒,如果未指定,则默认为 1 秒。
返回值
示例
一个 DelayNode
。默认的 DelayNode.delayTime
为 0 秒。
注意:
DelayNode()
构造函数是创建 DelayNode
的推荐方法;请参见 创建 AudioNode。const audioCtx = new AudioContext();
const synthDelay = audioCtx.createDelay(5.0);
// …
let synthSource;
playSynth.onclick = () => {
synthSource = audioCtx.createBufferSource();
synthSource.buffer = buffers[2];
synthSource.loop = true;
synthSource.start();
synthSource.connect(synthDelay);
synthDelay.connect(destination);
this.setAttribute("disabled", "disabled");
};
stopSynth.onclick = () => {
synthSource.disconnect(synthDelay);
synthDelay.disconnect(destination);
synthSource.stop();
playSynth.removeAttribute("disabled");
};
// …
let delay1;
rangeSynth.oninput = () => {
delay1 = rangeSynth.value;
synthDelay.delayTime.setValueAtTime(delay1, audioCtx.currentTime);
};
规范
我们创建了一个简单的示例,允许您以恒定循环播放三个不同的样本 - 请参见 create-delay(您也可以 查看源代码)。如果您只按下播放按钮,循环将立即开始;如果您将滑块向上滑动到最右边,然后按下播放按钮,则将引入延迟,因此循环声音不会立即开始播放。 |
---|
Web Audio API # 规范 |
浏览器兼容性
dom-baseaudiocontext-createdelay