Web Audio API:发现一个节点的连接

Web Audio API: discover a node's connections

本文关键字:一个 节点 连接 API Audio 发现 Web      更新时间:2023-09-26

使用Web Audio API,是否有方法发现节点的连接?

例如,给定

ctx = new AudioContext();
g1 = ctx.createGain();
g2 = ctx.createGain();
g1.connect(g2);

是否有一个方法,我可以调用g1,将返回[g2] ?

我有兴趣编写一个javascript库来可视化当前的音频图,类似于Firefox Web audio Editor。

你可以这样做:

var connect = AudioNode.prototype.connect;
var disconnect = AudioNode.prototype.disconnect;
AudioNode.prototype.connect = function( dest ) {
  this._connections || ( this._connections = [] );
  if ( this._connections.indexOf( dest ) === -1 ) {
    this._connections.push( dest );
  }
  return connect.apply( this, arguments );
};
AudioNode.prototype.disconnect = function() {
  this._connections = [];
  return disconnect.apply( this, arguments );
};

这是一个简单的例子,它不考虑disconnect参数。但我认为,类似的方法可能会奏效。

有很好的理由做这样的事情。但它将使允许您保持应用程序代码的通用性,如果您希望能够可视化任意音频图形,这正是您所需要的。

简短的回答是没有——没有这样的方法。你必须自己跟踪你的连接