获得连接的输入和输出?

时间:2013-09-19 09:20:32

标签: web-audio

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

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

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

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

1 个答案:

答案 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以从阵列中删除它们。

这可能是一个可怕的想法,但可能会根据您的需要为您做好准备。