BaseAudioContext: createDelay() 方法
BaseAudioContext 接口的 createDelay() 方法用于创建一个 DelayNode,该节点用于将传入的音频信号延迟一段时间。
注意: 创建 DelayNode 的推荐方式是使用 DelayNode() 构造函数;请参阅 创建 AudioNode。
语法
js
createDelay(maxDelayTime)
参数
maxDelayTime可选-
音频信号可以延迟的最大时间(以秒为单位)。必须小于 180 秒,如果未指定,则默认为 1 秒。
返回值
一个 DelayNode。默认的 DelayNode.delayTime 为 0 秒。
示例
我们创建了一个示例,允许您循环播放三个不同的采样——请参阅 create-delay(您也可以 查看源代码)。如果您只点击播放按钮,循环将立即开始;如果您将滑块向上滑动,然后点击播放按钮,则会引入延迟,因此循环声音不会立即播放。
js
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);
};
规范
| 规范 |
|---|
| Web Audio API # dom-baseaudiocontext-createdelay |
浏览器兼容性
加载中…