切换麦克风静音或取消静音的按钮

时间:2018-12-18 09:35:34

标签: webrtc

我只是开始学习WebRTC,但是我无法使麦克风静音。

这就是我想要的:

首先,它将尝试访问麦克风。然后,将有一个按钮用于切换麦克风的静音或取消静音。

这是我尝试过的:

代码1:

new MediaStream();
var constraints = track.getConstraints();

错误ReferenceError: track is not defined


代码2:

const constraints = {
    audio: true
};

const audio = document.getElementById("mic-audio");

navigator.mediaDevices.getUserMedia(constraints).
  then((stream) => {audio.srcObject = stream});

部分有效。浏览器正在请求我允许该页面使用和访问麦克风的权限,但我不知道如何将其静音。


代码3:

navigator.mediaDevices.getUserMedia({ audio: true })
.then(mediaStream => {
  const track = mediaStream.getAudioTracks()[0];
  track.applyConstraints(constraints)
  .then(() => {
    // Do something with the track such as using the Image Capture API.
  })
  .catch(e => {
    // The constraints could not be satisfied by the available devices.
  })
})

它与代码2相同,但是我仍然不知道如何使其静音。


我已经搜索了所有相关内容,但似乎找不到正确的代码。

我也是从MDN找到的:

  

注意:在实现静音/取消静音功能时,您应该使用enabled属性。

我还尝试使用enabled属性,如下所示:

MediaStream.enabled = false

但是,麦克风仍未静音。

我也尝试在Stack Overflow上搜索,这就是我发现的内容:

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();
        }
    }
});

来自问题: How to mute/unmute mic in webrtc

但是,它给我返回了一个错误ReferenceError: getLocalStream is not defined

0 个答案:

没有答案