Web 技术研究所

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

AudioAPI 节点的基本概念

  其实这篇应该是入门篇的,但现在写也不迟。AudioAPI的大部分操作都是通过一个个连接的节点完成的,这些节点需要连通,从声源节点到输出节点都必须保持通畅才能正常工作。就像在电路上连接一个个元件来完成不同的工作,最后连接到扬声器上。
  最简单的路线就是从声源直接连接到输出节点:source → destination
  输出节点在AudioContext实例的destination上可以找到,而声源节点却有很多。就像百川东到海,海只有一个,但是川可以有很多。MediaElementSource、MediaStreamSource、BufferSource、Oscillator、createScriptProcessor,这些都是声源节点。它们都是可以产生波,并传输给下一个节点的。所以要让AudioAPI发出声音,最简单的代码可以这么写
<script>
var AudioContext=AudioContext||webkitAudioContext;
var context=new AudioContext;
var oscillator=context.createOscillator();
oscillator.connect(context.destination);
oscillator.start(0);
</script>
  直接从声源连接到输出节点是最简单的用法,AudioAPI还提供了很多节点用于对音频的特殊处理。比如Gain节点用来调整音量、BiquadFilter节点用来过滤一些数据。当数据从这些节点上流过时就会被做相应的处理。
  这些节点的连接也不是一对一那么简单的,它可能一对多,比如一个声源头可以同时给多个节点处理,之后再把这些中间节点汇总起来,这就要关心这些节点的分支与汇总的问题了。
  总之,AudioAPI的设计就像是电路设计,有机地组合它所提供的节点就可以完成几乎所有音频处理。
网名:
34.203.213.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^