3

WebAudio 节点是否可以访问与其连接的其他节点(作为输入或输出)?

例如,我有一个增益节点和一个缓冲源节点。缓冲源节点连接到增益节点,增益节点连接到最终目标:

var gainNode = ac.createGainNode(); // gain node
ac.createBufferSource().connect(gainNode); // source
gainNode.connect(ac.destination);

仅给出对增益节点的引用,我可以获得对源节点的引用吗?反之亦然。

4

1 回答 1

4

没有。不过,我不完全确定为什么。似乎这会使一些事情变得容易一些。

编辑:

如果你喜欢冒险,你可以尝试像这样疯狂的事情:

AudioNode.prototype.connect = (function(){
  var func = AudioNode.prototype.connect;
  return function(){
   ( this.outputs || ( this.outputs = [] ) ).push(arguments[0]);
   return func.apply(this, arguments);
  }
}());

这将给出连接AudioNodesoutput输出节点数组。您还必须以AudioNode.prototype.disconnect类似的方式覆盖以将它们从数组中删除。

这可能是一个糟糕的想法,但可能会根据您需要做什么来解决您的问题。

于 2013-09-19T14:12:35.263 回答