【问题标题】:getusermedia DevicesNotFoundError thrown in latest browsers最新浏览器中抛出 getusermedia DevicesNotFoundError
【发布时间】:2018-01-22 09:54:38
【问题描述】:

我已经为 WebRtc 使用 getUserMedia() 有一段时间了,但是自从浏览器的最新更新以来,我一直无法使用它。在以前的版本上运行良好。

受影响的浏览器版本 火狐 - 57.0.4 , 铬 - 63.0.3239.132

示例代码:

navigator.getUserMedia({ "audio": true, "video": false }, function (stream) {
  console.log(stream);
  localStream = stream;

},logError);

如果有人在 google 示例代码中遇到此错误,请检查此项 https://webrtc.github.io/samples/src/content/getusermedia/gum/

这个问题有什么解决办法吗?需要帮忙。 谢谢

【问题讨论】:

  • 请发布您的代码,以便我们查看导致错误的原因.... “寻求调试帮助的问题(“为什么此代码不起作用?”)必须包含所需的行为,一个特定的问题或错误,以及在问题本身中重现它所需的最短代码。没有明确问题陈述的问题对其他读者没有用处。"
  • 添加示例代码。

标签: javascript google-chrome firefox webrtc getusermedia


【解决方案1】:

我找到了解决方案。在较新的版本中,当我们指定约束 { audio: true, video: true } 时,我们将其中任何一个指定为 true 时都需要存在相应的硬件。否则会抛出 DevicesNotFoundError

这是我使用的代码。我在本地机器上没有网络摄像头,所以将视频指定为假。

navigator.mediaDevices.getUserMedia({ audio: true, video: false})
.then(function(stream) {
   /* use the stream */ 
})
.catch(function(err) {
   /* handle the error */
});

【讨论】:

  • 使用 navigator.mediaDevices.enumerateDevices() 找出可用的设备类型。
  • 某些网络摄像头没有音频,这意味着请求“audio: true”会导致错误。
猜你喜欢
  • 2016-03-03
  • 1970-01-01
  • 2013-07-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
相关资源
最近更新 更多