简体   繁体   中英

Web Audio API: discover a node's connections

With the Web Audio API, is there a way to discover a node's connections?

For example, given

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

is there a method I can call on g1 that will return [g2] ?

I'm interested in writing a javascript library to visualize the current audio graph, similar to the Firefox Web Audio Editor .

The short answer is no - there is no such method. You'll have to keep track of your connections yourself.

You could potentially do something like this:

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 );
};

This is a quick example, and it doesn't account for disconnect arguments. But something along those lines could work, I think.

There are good reasons not to do something like this. But it would allow you to keep the application code generic, which is really what you need if you want to be able to visualize arbitrary audio graphs.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM