WebRTC Webcam not working on Safari and Microsoft Edge
我想访问网络摄像头和音频设备以使用WebRTC录制视频。但是,它仅适用于Chrome和Firefox。
有趣的是,它在Edge和Safari上不起作用。它要求获得摄像头使用许可,当我们授予许可时,摄像头无法加载,并且在控制台中出现以下错误。
Safari和Edge上的
错误消息
navigator.getUserMedia error: ReferenceError
我的代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | 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示例getUserMedia
我建议您可以在MS Edge浏览器中测试此示例,并让我们知道它是否有效。
如果有效,则可以根据其Github页面上的官方示例修改代码。
如果您使用的是旧版本的MS Edge浏览器,则建议您使用最新版本进行更新,然后再次测试该问题。