javascript - getUserMedia - 无法同时从两个浏览器访问摄像头

标签 javascript webrtc hardware

我一直在为我的下一个项目尝试使用 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 中不行。您在这里有几个选择:

  1. 买一台 Mac 😛
  2. 获取第二个 USB 摄像头,以便在测试时在第二个应用程序中使用。
  3. 安装一些software for splitting your cameracreating a virtual camera .
  4. 在 Chrome 或 Firefox(或两者)中使用假设备进行测试(如 Philipp 建议的那样)。实际上,在 Firefox 中打开假冒设备非常容易,而且它是免费的,因此如果您还没有另一个 USB 摄像头,这可能是最好的选择。
    1. 只需转到网址栏中的 about:config
    2. 接受警告消息
    3. 添加新的 bool 值。您可以通过右键单击并选择“新建”->“ bool 值”来完成此操作。
    4. 然后输入media.navigator.streams.fake
    5. 选择 true 作为值。 enter image description here 现在,当您使用相机时,您会收到虚假的视频和音频声音。

关于javascript - getUserMedia - 无法同时从两个浏览器访问摄像头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43307162/

相关文章:

javascript - 在 iframe 标签中使用 pdfmake 生成 pdf

javascript - 为基于 Node.js 的 CLI 的单个版本运行一次代码

javascript - 在javascript中将字符串分割成句子

java - 什么是 '@CalledByNative(".. .")' ?

javascript - 视频源断开连接时 WebRTC 发出警报

algorithm - 硬件中的多个独立伪随机数生成(Verilog 或 VHDL)

javascript - 跨 Controller 共享和观察数据

javascript - HTML5 音频捕获 - 如何 chop 录制的音频

x86 - 分支预测 - 关于目标预测和使用 PC 的问题

hardware - 每秒 CPU 指令数