0

そのため、Chrome で恐ろしい Illegal Invocation エラーが発生しました。オーディオ効果と信号ルーティングのフレームワークを構築するために、Web Audio API (HTML5 は最高です) を使用しています。基本的に、ノードが配列内のどこにあるかに基づいて、ノードを自動的にルーティングします。しかし、複雑なエフェクトやモジュール用に独自のクラス/オブジェクトを含めました。これらには複数のノードがあり、あたかも単一の入力/出力ノードであるかのように、どこに行くかを委譲できます。

とにかく、オブジェクトが作成されると、ノード作成の時点でエラーがスローされます(モジュール内のプライベートノード)。コンソールでこれが起こっていること、または固有の「これ」が失われていることについてよく読んだことがあります。しかし、ノード コンストラクターを取得する変数がグローバル変数であるため、なぜここで発生するのかわかりません。何か案は?

var context, nodes;

var Delay = function(_context, _time, _feedback, _wet) {
   this.type = "Delay";

   this.delay = new context.createDelayNode(); //Console points error here.
   this.feedback = new context.createGainNode();
   this.crossfade = new context.createGain();        
}

function GotStream(stream) {
   context = new AudioContext();
   nodes = [ new Delay(1,1,1) ]; //Start point of error
   ...
}

明らかに少し削除されていますが、それは関数/変数の正確なネストです。を追加しようとしたことに注意してください.call(window), そして.bind(window)運がないノードコンストラクター

4

0 に答える 0