Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

AudioAPI Delay节点

  AudioAPI中有个Delay节点,它的作用就和它的名字一样,让上一个节点传递过来的数据延迟一段时间后再传递给下一个节点。相当于一条很长的管道,数据通过这个管道需要一定的时间。对同一个源加上个delay节点输出可以实现类似二重奏的效果。
  演示:[实例] <script>
var AudioContext=AudioContext||webkitAudioContext;
var context=new AudioContext;
//加载音乐
var audio=new Audio("SuperMario.mp3");
//创建节点
var source=context.createMediaElementSource(audio);
var delay=context.createDelay();
var gain=context.createGain();
//设置节点参数
delay.delayTime.value=0.5;
gain.gain.value=0.8;
//连接: source → destination
//         ↓      ↑
//       delay → gain
source.connect(context.destination);
source.connect(delay);
delay.connect(gain);
gain.connect(context.destination);
//播放
audio.play();
</script>
  Delay节点设置延迟的单位是秒(注意不是毫秒!),默认值是0,也就是不延迟。而在默认情况下,最大延迟也只能设置到1秒,所以Delay设计的初衷基本上是用于一些微调的。但这个最大延迟也是可以配置的,使用createDelay来创建Delay节点时可以带上一个参数,这个参数就是创建出的Delay节点的最大可用延迟。上面的例子中我没传递这个参数,所以它的delayTime.value只能设置到1(超出也按1算)。但我根本不用那么大的延迟,所以没必要配置这个参数。
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^