2017-04-09 96 views
0

我一直在尝试使用webRTC来为我的下一个项目创建视频聊天,并且测试一直很困难。我有这个简单的代码来访问摄像机:getUserMedia - 无法同时从两个浏览器访问摄像头

 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,但是当我尝试这样做起来,这是行不通的罚款。我的意思是在一起就像在两个浏览器中使用此代码打开相同的文件。看起来,当一个浏览器访问摄像头时,它会阻止其他人访问摄像头。

我还没有看到在互联网上讨论过这个问题,所以我想知道,这是我吗?如果没有,是否有解决方案?

+2

事情会这样工作真的不奇怪。 – Pointy

回答

4

这是对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. 添加一个新的布尔值。您可以通过右键单击并选择New-> Boolean来完成此操作。
    4. 然后输入media.navigator.streams.fake
    5. 选择true作为值。 enter image description here 现在,当你使用你的相机,你会得到一个虚假的视频和音频声音。
2

Chrome和Firefox都有命令行标志,通过启用伪造设备使测试变得更容易。请参阅here for Firefox,并进一步了解Chrome。

相关问题