WebAudio节点是否可以访问连接到它的其他节点(作为输入或输出)?
例如,我有一个增益节点和一个缓冲源节点。缓冲源节点连接到增益节点,增益节点连接到最终目标:
var gainNode = ac.createGainNode(); // gain node
ac.createBufferSource().connect(gainNode); // source
gainNode.connect(ac.destination);
仅提供对增益节点的引用,我可以获得对源节点的引用吗?反之亦然。
答案 0 :(得分:3)
不。不过,我不完全确定原因。似乎这会使一些事情变得更容易。
编辑:
如果你喜欢冒险,你可以尝试这样的疯狂:
AudioNode.prototype.connect = (function(){
var func = AudioNode.prototype.connect;
return function(){
( this.outputs || ( this.outputs = [] ) ).push(arguments[0]);
return func.apply(this, arguments);
}
}());
这将为连接的AudioNodes
提供其输出节点的output
数组。您还必须以类似的方式覆盖AudioNode.prototype.disconnect
以从阵列中删除它们。
这可能是一个可怕的想法,但可能会根据您的需要为您做好准备。