如何在webrtc中静音/取消静音麦克风

问题描述 投票:6回答:3

我从这里读到如何在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();
            }
        }
    });

有人可以建议我如何在本地流中取消麦克风。

html5-video webrtc html5-audio simplewebrtc
3个回答
7
投票

我假设你的方法getLocalStream实际上是在调用navigator.getUserMedia。在这种情况下,当您执行此操作时,您将获得另一个流,而不是原始流。使用原始流你应该这样做

mediaStream.getAudioTracks()[0].enabled = true; // or false to mute it.

或者你可以检查https://stackoverflow.com/a/35363284/1210071


2
投票

啊,有一个很好的方法来做到这一点:

mediaStream.getVideoTracks()[0].enabled = !(mediaStream.getVideoTracks()[0].enabled);

1
投票

有2个属性enabledmutedenabled用于设置,而muted在远程端(另一个人)是只读的(我试过,设置muted不起作用,基本上,值不能更改)

stream.getAudioTracks()[0].enabled = true; //远程将获得muted更改

© www.soinside.com 2019 - 2024. All rights reserved.