我只是开始学习WebRTC,但是我无法使麦克风静音。
这就是我想要的:
首先,它将尝试访问麦克风。然后,将有一个按钮用于切换麦克风的静音或取消静音。
这是我尝试过的:
new MediaStream();
var constraints = track.getConstraints();
错误:ReferenceError: track is not defined
const constraints = {
audio: true
};
const audio = document.getElementById("mic-audio");
navigator.mediaDevices.getUserMedia(constraints).
then((stream) => {audio.srcObject = stream});
部分有效。浏览器正在请求我允许该页面使用和访问麦克风的权限,但我不知道如何将其静音。
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