connect
一、认识
AudioNode
接口的 connect()
方法使你能将一个节点的输出连接到一个指定目标,这个指定的目标可能是另一个 AudioNode
(从而将音频数据引导到下一个指定节点)或一个AudioParam
, 以便上一个节点的输出数据随着时间流逝能自动地对下一个参数值进行改变。
二、语法
var destinationNode = AudioNode.connect(destination, outputIndex, inputIndex);
AudioNode.connect(destination, outputIndex);
-
destination
: 需要连接的AudioNode
或AudioParam
. -
outputIndex
: 一个索引,用于描述当前AudioNode
的哪个输出会连接到destination
。索引数字是由输出频道的数量来确定的。当你只能将给定的输出连接到给定的输入一次(重复的尝试会被忽略)时,可以通过多次调用connect()
将一个输出连接到多个输入。可以通过这样来实现扇出。这个参数的默认值为0
。 -
inputIndex
: 一个索引,用于描述当前AudioNode
会连接到destination
的哪个输入,它的默认值是0
。索引数字是由输入频道的数量来确定的。将一个AudioNode
连接回之前的AudioNode
,以此形成一个圈是可行的。不过只在这个圈里有至少一个DelayNode
才可行。否则会抛出一个NotSupportedError
异常。此参数在destination
是AudioParam
时不可用。 -
destinationNode
: 如果destination
是一个节点,connect()
返回destination
所表示的AudioNode
对象的引用,允许你链式地调用数个connect()
。某些浏览器关于该接口的旧实现会返回undefined
。 如果destination
是一个AudioParam、connect()
返回undefined
。
三、异常
3.1 IndexSizeError
IndexSizeError
这个异常表明 outputIndex
或 inputIndex
与当前输入或输出不符。
3.2 InvalidAccessError
InvalidAccessError
目标节点与原节点不在同一个音频上下文。
3.3 NotSupportedError
NotSupportedError
该链接会形成一个闭环(音频在这个环里不断重复经过同一个节点)并且这个闭环里没有 DelayNode (en-US)
来防止产生的波形被卡住,不停地构建相同的音频帧。