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

问题描述

我使用 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)})
})

解决方法

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

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

<video muted>

</video>

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

video.muted=true;

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

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

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...