我可以将媒体设备的麦克风静音吗?

时间:2021-03-05 16:14:54

标签: javascript html5-video record voice-recording

我使用 navigator.mediaDevices.getUserMedia 录制用户视频和语音没有问题,但是在录制视频时我不想听到麦克风的声音,我可以将麦克风静音吗?

我试过了stream.getAudioTracks()[0].muted

这是我的代码片段

navigator.mediaDevices.getUserMedia({
            video: true, audio: {
                echoCancellation: true,
                noiseSuppression: true,
                sampleRate: 44100
            }
        })
            .then(stream => {
    video.srcObject = stream;
                stream.getAudioTracks()[0].muted //doesn't work
                var mediaRecorder = new MediaRecorder(stream)

                start.addEventListener('click', _ => {
                    mediaRecorder.start()
                    console.log(mediaRecorder.state);
                })

                stop.addEventListener('click', _ => {
                    mediaRecorder.stop()
                    console.log(mediaRecorder.state);
                    stream.getTracks().forEach(function (track) {
                        track.stop();
                    })
                })

                mediaRecorder.addEventListener('stop', _ => {
                    let blob = new Blob(chunks, { 'type': 'video/x-matroska;codecs=avc1,opus' });
                    let videoUrl = URL.createObjectURL(blob)})
})

1 个答案:

答案 0 :(得分:0)

如果我没看错 - 您想录制音频,但不想在浏览器中播放,对吗?

只需将 muted 参数添加到正在播放您正在抓取的媒体中即可。

<video muted>

</video>

您可以以编程方式执行此操作:

video.muted=true;

如果您不想录制音频 - 将您的音频限制更改为 audio: false:

navigator.mediaDevices.getUserMedia({
            video: true, audio: false
        })