私はフィードバックについて話しています.ユーザーからのストリームを開き、周波数分析(またはそれが何であれ)を読み取る単純なJavaScriptアプリケーションを作成すると、受信したすべてのデータがGoogle ChromeとOperaの両方でヘッドフォンに返されます. Firefox はほとんどの場合沈黙しており、ランダムに不安定なフィードバックで巨大な混乱を引き起こします。また、数秒後にストリームを閉じます。通常、Firefox ではまだ動作しません。
フィドルを作成しました。ブラウザがサポートしていない場合は、コンソールにエラーが表示されると思います。
コードの重要な部分は、ユーザーがマイク アクセスの要求を受け入れたときに呼び出される関数です。
//Not sure why do I do this
var inputPoint = context.createGain();
// Create an AudioNode from the stream.
var source = context.createMediaStreamSource(stream);
source.connect(inputPoint);
//Analyser - this converts raw data into spectral analysis
window.analyser = context.createAnalyser();
//Mores stuff I know nothing about
analyser.fftSize = 2048;
//Sounds much like connecting nodes in MatLab, doesn't it?
inputPoint.connect(analyser);
analyser.connect(context.destination);
///THIS should probably make the sound silent (gain:0) but it doesn't
var zeroGain = context.createGain();
zeroGain.gain.value = 0.0;
//More connecting... are you already lost which node is which? Because I am.
inputPoint.connect(zeroGain);
zeroGain.connect(context.destination);
ゼロゲインのアイデアは私のものではありません。単純なサウンドレコーダーのデモから盗みました。しかし、彼らにとってうまくいくことは、私にはうまくいきません。私のように、デモはFirefoxでも問題ありません。