用户选择设备后,我使用以下内容从设备中获取流:
mediaDeviceScanner.getMediaByDeviceId = function (deviceId) {
return navigator.mediaDevices.getUserMedia({ audio: true, video: { deviceId: { exact: deviceId } } });
}
即使连接了多个网络摄像头,这也很有效。
我遇到的问题是,当在MediaRecorder
内使用结果流时,录制的音频 - 偶尔会 - 极度失真:
const mediaRecorder = new MediaRecorder(mediaDevice.localStream(), getMediaRecorderOptions());
// localStream is what the above method returns
视频录制总是很好。音频录制适用于一台设备,但有时音频在连接多个本地设备时变得非常失真。
我已尝试通过getUserMedia
通过deviceId / exact
指定音频设备,但从Chrome 60.0
开始,这似乎不受支持。
可能导致这种情况的原因,以及如何防止这种情况发生?