2016-12-21 19 views
2

나는 angularjs보기에서 표현되는 webrtc 스트림을 많이 가지고 있는데, 어떤 것들은 특정 볼륨 임계 값 이상인지 시각화하고 싶습니다. 그런 다음 한 번에 하나씩들을 수 있습니다. 이것이 가능한가? 내가 찾은 모든 것은 음량을 계산하기 위해 audiocontext에 스트림을 첨부해야 할 필요가있는 것처럼 보입니다. 그리고 이것은 시내를 재생합니다. 스트림을 재생하지 않고 볼륨을 계산할 수 있습니까? 나는 볼륨 임계 값 탐지를 위해 hark.js를 사용 해왔다.webrtc 오디오 스트림을 재생하지 않고 볼륨을 확보 할 수 있습니까?

내 스트림은 3 부 rtc 라이브러리에서 파생되었지만 궁극적으로 나는 많은 webrtc 스트림을 보유하고 있으며 어떤 스트림이 잡음을 생성하는지 시각화하면서 한 번에 하나씩 듣고 싶어합니다. 이것의 대부분의 예는 방송사 측면에서이 논리를 갖고있는 것처럼 보입니다.

듣다 코드는 거의 다음을 수행 한 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에서 스트림을 얻을 - 또한
var fftBins = new Float32Array(analyser.fftSize); 
    analyser.getFloatFrequencyData(fftBins); 
    //check fftBins for volume data 

, 제 3 자, 목적. 뷰의 비디오 컬렉션은 그들을

답변

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에 연결합니다. connectanalyser으로 설정하고 node.connect(audioCtx.destination)을 생략하면 기본 스피커 출력은 생략됩니다.

+0

window.AudioContext 외부에서 분석기를 만들 수 있습니까? 나는 분석기에 연결하지만 그 지점에서 스피커를 통해 연주하는 상어를 사용하고 있습니다 – jumpdart

+0

@jumpdart 무슨 뜻인지 확실하지 않습니다. 스피커 출력이없는 분석기 [wfm] (https://jsfiddle.net/0s769z0d/). – jib

+0

마이크가 괜찮은 것 같습니다. 내 rtc 라이브러리 문제 일 수 있습니다. 제 3 자 webrtc 객체를 표준 미디어 스트림으로 가져 오는 데 문제가 있음 – jumpdart