Hubungkan input dan output?

Apakah node WebAudio memiliki akses ke node lain yang terhubung dengannya (baik sebagai input atau output)?

Misalnya, saya memiliki node gain dan node sumber buffer. Node sumber buffer dihubungkan ke node gain dan node gain terhubung ke tujuan akhir:

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

Mengingat hanya referensi ke node gain, bisakah saya mendapatkan referensi ke node sumber? Dan sebaliknya.


person katspaugh    schedule 19.09.2013    source sumber


Jawaban (1)


Tidak. Tapi aku tidak begitu yakin kenapa. Sepertinya itu akan membuat beberapa hal menjadi lebih mudah.

Sunting:

Jika Anda suka bertualang, Anda mungkin bisa mencoba sesuatu yang gila seperti ini:

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

Yang akan memberikan AudioNodes array output yang terhubung dari node keluarannya. Anda juga harus mengganti AudioNode.prototype.disconnect dengan cara yang sama untuk menghapusnya dari array.

Ini mungkin ide yang buruk, namun mungkin berhasil tergantung pada apa yang perlu Anda lakukan.

person Kevin Ennis    schedule 19.09.2013
comment
Baiklah :) Terima kasih, Kevin! - person katspaugh; 19.09.2013
comment
Tidak, tidak - tetapi alasannya adalah jika kami menawarkan introspeksi grafik pada node seperti ini, kami tidak akan dapat mengumpulkan subgraf node pengumpulan sampah yang telah selesai diputar (karena Anda dapat berjalan kembali ke node dari tujuan , dan Anda dapat melihatnya menghilang - yang berarti Anda dapat mengamati aksi pengumpulan sampah, yang merupakan JS yang pasti tidak boleh). - person cwilso; 20.09.2013
comment
Anda dapat melakukan penggantian connect() yang Anda sarankan di atas, karena ini hanya satu arah (masalah utamanya adalah introspeksi pada apa yang terhubung KE input node, bukan output apa yang terhubung dengannya); tetapi Anda tetap harus berhati-hati agar tidak memengaruhi masa hidup objek. - person cwilso; 20.09.2013