4

私はフィードバックについて話しています.ユーザーからのストリームを開き、周波数分析(またはそれが何であれ)を読み取る単純な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でも問題ありません。

4

1 に答える 1

0

関数内で mediaGranted(stream) {...

コメント アウト .. Fiddle line #46: //analyser.connect(context.destination); ..

詳細https://mdn.mozillademos.org/files/5081/WebAudioBasics.png 素敵なデモ: http://mdn.github.io/voice-change-o-matic/

于 2014-08-22T12:27:39.710 に答える