2016-12-21 5 views
2

私は、angularjsビューで表現されたwebrtcストリームの束を持っています。そして、私はそれらが1つずつ聞くことができる特定の音量のしきい値を超えているものを視覚化したいと思います。これは可能ですか?私が見つけたものはすべて、音量を計算するためにオーディオストリームにストリームを添付する必要があります。これがストリームを再生します。ストリームを再生せずに音量を計算できますか?私はボリューム閾値検出のためにhark.jsで遊んでいました。webrtcオーディオストリームの音量を再生せずに取得できますか?

私のストリームは3番目のRTTライブラリから派生したものですが、最終的に私たちはたくさんのwebrtcストリームを持っており、どのストリームがノイズを生成しているかを視覚化しながら一度に1つずつ聴きたいと思っています。これのほとんどの例は、放送局側でこの論理を持っているようです。

HARKコードはかなり次の処理を行います。

のWebRTCライブラリ

-start

var audioContextType = window.AudioContext || window.webkitAudioContext; 
    var audioContext = new audioContextType(); 
    var analyser = audioContext.createAnalyser(); 
    analyser.fftSize = 512; 
    analyser.smoothingTimeConstant = 0.1; 
    var node = audioContext.createMediaStreamSource(stream); 
    node.connect(analyser);//plays stream 

-loop

私はicelinkからのストリームを取得し-also
var fftBins = new Float32Array(analyser.fftSize); 
    analyser.getFloatFrequencyData(fftBins); 
    //check fftBins for volume data 

、サードパーティ、オブジェクト。ビューのビデオコレクションは、あなたが持っていない彼らに

答えて

1

を再生せずにそう

var remoteStream = fm.icelink.webrtc.linkExtensions.getRemoteStream(link); 
    var videoObject = angular.element('<video></video>'); 
    videoObject.attr('src', window.URL.createObjectURL(remoteStream.getBackingStream())); 
    videoObject.attr('autoplay', 'true'); 
    resolve(videoObject); 

私は別のビデオストリームのサウンドレベルを表示するには、いくつかの視覚的なインジケータをオーバーレイしようとしていますのような流れの束から作成されますストリームを "再生して" AudioContextに接続します。 connectからanalyserに、node.connect(audioCtx.destination)を省略するとデフォルトのスピーカー出力は省略されます。

+0

window.AudioContextの外部にアナライザーを作成できますか?私はアナライザに接続するが、その時点でスピーカーで演奏するハークを使用しています – jumpdart

+0

@jumpdartあなたが何を意味するか分かりません。スピーカー出力なしのアナライザー[wfm](https://jsfiddle.net/0s769z0d/)。 – jib

+0

マイクはうまくいくようです。私のrtcライブラリの問題かもしれません。第三者webrtcオブジェクトを標準的なメディアストリームとして取得しているが、問題が発生している – jumpdart

関連する問題