3

数日以来、webrtc 経由で送信されるオーディオストリームを視覚化しようとしています。通常のローカル ストリーム (webaudio マイクの使用) で正常に動作するいくつかのビジュアルを既に作成しました。

次に、 https://github.com/muaz-khan/WebRTC-Experiment/tree/master/で、さまざまなブラウザー間でマイク入力をストリーミングするための非常に興味深いものを見つけました。これは、フロントエンドのすべてのクライアントに対して 1 つのバックエンドから同じオーディオ データを取得するために必要です。

すべて正常に動作し、いくつかのテストでは、お互いの声が聞こえることが示されました。そのため、入ってくるストリームを視覚化することも問題ではないと考えました。

しかし、お互いの声が聞こえても、すべての周波数データは空 (ゼロ) です。

誰かがこれに対する解決策やヒントを持っていますか? 前もって感謝します!

これは、リモート周波数データを分析するための私のテストです:

これらのファイルを最初に含めます。

webrtc-experiment.com/firebase.js

webrtc-experiment.com/one-to-many-audio-broadcasting/meeting.js

        var meeting = new Meeting('test');
        var audioContext = new window.webkitAudioContext();
        var analyser = audioContext.createAnalyser();

        // on getting local or remote streams
        meeting.onaddstream = function(e) {
            console.log(e.type);
            console.log(e.audio);
            console.log(e.stream);

            if(e.type === 'local')
            {
                //try it with the local stream, it works!
            }
            else
            {

                var source = audioContext.createMediaStreamSource(e.stream);

                source.connect(analyser);
                analyser.connect(audioContext.destination);

                console.log(analyser.fftSize);
                console.log(analyser.frequencyBinCount);

                analyser.fftSize = 64;
                console.log(analyser.frequencyBinCount);

                var frequencyData = new Uint8Array(analyser.frequencyBinCount);
                analyser.getByteFrequencyData(frequencyData);

                function update() {
                    requestAnimationFrame(update);

                    analyser.getByteFrequencyData(frequencyData);

                    console.log(frequencyData);
                };

                update();
            }
        };

        meeting.check();
        meeting.setup('test');
4

2 に答える 2

1

少なくとも次回は簡単な「解決策」を見つけました。

すべてのクライアントで、マイクからヘッドフォンにオス/オス オーディオ ケーブルを接続しました。次に、ローカル マイク ストリームを読み取ると、なんと奇跡的なことか、自分が聞いていることを視覚化できます。

良い解決策ではありませんが、それは仕事をしています..

1 つの質問: JavaScript で宛先をストリームとして再取得することは可能ですか? そしたらオーディオケーブルいらない…

于 2013-11-14T08:59:53.210 に答える