WebRTC网络摄像头在Safari和Microsoft Edge上不起作用



我想访问网络摄像头和音频设备以使用WebRTC录制视频。但是,它仅适用于Chrome和Firefox。

有趣的是,它不适用于Edge和Safari。它要求相机使用权限,当我们授予权限时,相机不会加载,我在控制台中收到以下错误。

Safari 和 Edge 上的错误消息

navigator.getUserMedia error: ReferenceError

我的代码如下所示

async init(constraints) {
try {
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
const stream = await navigator.mediaDevices.getUserMedia(constraints);
this.handleSuccess(stream);
} else {
this.setState({
error:
'Your Browser is not supported. Please use latest version of Chrome, Safari, Firefox or Edge.',
});
}
if (!MediaRecorder) {
this.setState({
error:
'Your Browser is not supported. Please use latest version of Chrome, Safari, Firefox or Edge.',
});
}
} catch (e) {
this.setState({
error:
'We could not find any audio/video recording device. Please make sure you have given permission to use webcam and microphone.',
});
console.error('navigator.getUserMedia error:', e.name);
}
}

在所有这些浏览器中完美加载相机的任何建议。

看起来您在MS Edge旧版浏览器中遇到了问题。如果我误解了,请纠正我。

我尝试在MS Edge旧版浏览器(44.18362.449.0(中测试官方示例代码,并且工作正常。

WebRTC 示例获取用户媒体

我建议您在MS Edge浏览器中测试此示例,并让我们知道它是否有效。

如果它有效,那么您可以根据其 Github 页面的官方示例修改代码。

如果您使用的是旧版本的MS Edge浏览器,那么我建议您使用最新版本进行更新并再次测试问题。

最新更新