2014-07-08 107 views
3

我期待获得WebRTC MediaStream的麦克风活动级别。然而,我需要得到这个信息没有播放麦克风给用户(否则会有回环效应)。WebRTC:获取mediaStream *的音频级别,不播放音频

Microphone activity level of WebRTC MediaStream中的答案依赖于正在播放给用户的音频。我怎样才能做到这一点,而不用回放麦克风?

+0

不,它不需要?我只是测试了代码,而媒体流只是进入节点,并且从不播放到扬声器。我相信你必须使用AudioAPI并将其连接到节点不播放音频回来... –

回答

4

看看createGain method。它允许您设置流的音量。

这是我(简化)的例子,我在项目中使用:

navigator.getUserMedia({audio: true, video: true}, function(stream) { 
    var audioContext = new AudioContext; //or webkitAudioContext 
    var source = audioContext.createMediaStreamSource(stream); 

    var volume = audioContext.createGain(); 
    source.connect(volume); 
    volume.connect(audioContext.destination); 
    volume.gain.value = 0; //turn off the speakers 

    //further manipulations with source 
}, function(err) { 
    console.log('error', err); 
});