我一直在为我的下一个项目尝试使用 webRTC 创建视频聊天,但测试很困难。我有这个简单的代码来访问相机:
navigator.getUserMedia = navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia ||
navigator.msGetUserMedia;
var video = document.querySelector('#av-chat video');
if (navigator.getUserMedia) {
navigator.getUserMedia({audio: true, video: true}, function(stream) {
video.src = window.URL.createObjectURL(stream);
}, errorCallback);
}
它在 chrome 和 mozilla 上工作得很好,但是当我尝试一起做时,它不起作用。我所说的一起的意思就像在两个浏览器中使用此代码打开同一个文件。似乎当一个浏览器可以访问相机时,它会阻止其他浏览器访问该相机。
我没有在互联网上看到过这个问题,所以我想知道,只有我这样吗?如果不行有什么解决办法吗?
最佳答案
这是 Windows 上的限制。在 Mac OS 上,您可以同时在多个应用程序中使用同一台相机,但遗憾的是在 Windows 中不行。您在这里有几个选择:
- 买一台 Mac 😛
- 获取第二个 USB 摄像头,以便在测试时在第二个应用程序中使用。
- 安装一些software for splitting your camera或creating a virtual camera .
- 在 Chrome 或 Firefox(或两者)中使用假设备进行测试(如 Philipp 建议的那样)。实际上,在 Firefox 中打开假冒设备非常容易,而且它是免费的,因此如果您还没有另一个 USB 摄像头,这可能是最好的选择。
关于javascript - getUserMedia - 无法同时从两个浏览器访问摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43307162/