我从这里读到如何在webrtc中为本地流静音/取消静音麦克风:WebRTC Tips & Tricks
当我启动我的本地流麦克风时默认启用,所以当我设置audioTracks [0] .enabled = false时,它会在我的本地流中静音麦克风,但当我将其设置为真时,它可以取消静音。以下是我对本地流的代码静音/取消静音:
getLocalStream(function (stream,enable) {
if (stream) {
for (var i = 0; i < stream.getTracks().length; i++) {
var track = stream.getAudioTracks()[0];
if (track)
track.enabled = enable;
//track.stop();
}
}
});
有人可以建议我如何在本地流中取消麦克风。
我假设你的方法getLocalStream
实际上是在调用navigator.getUserMedia
。在这种情况下,当您执行此操作时,您将获得另一个流,而不是原始流。使用原始流你应该这样做
mediaStream.getAudioTracks()[0].enabled = true; // or false to mute it.
啊,有一个很好的方法来做到这一点:
mediaStream.getVideoTracks()[0].enabled = !(mediaStream.getVideoTracks()[0].enabled);
有2个属性enabled
和muted
。 enabled
用于设置,而muted
在远程端(另一个人)是只读的(我试过,设置muted
不起作用,基本上,值不能更改)
stream.getAudioTracks()[0].enabled = true;
//远程将获得muted
更改