我一直在开发一个使用对象导航器流式网络摄像头的应用程序。
它可以在我的PC浏览器上完美运行,这是github链接。

但是,当我在手机上启动该应用程序时,它会崩溃。我一直进行不同的测试,直到发现由于某种原因无法在移动浏览器上访问对象导航器。

这就是我发现的方式。我创建了这个功能:

 logErrors(){
  return(navigator.mediaDevices.toString())


}

我以这种方式显示它:

<h1>{this.logErrors()}</h1>


PS:如果语法看起来有些奇怪,我正在使用React。

无论如何,在我的PC浏览器上,我得到了:

javascript - 无法在移动Chrome浏览器上访问对象navigator.mediaDevices-LMLPHP

在我的手机浏览器上,出现以下错误:
javascript - 无法在移动Chrome浏览器上访问对象navigator.mediaDevices-LMLPHP

知道为什么无法在手机浏览器上访问mediaDevices吗?

最佳答案

如果您在here中检查MediaDevices的API,它们会说:


  它返回一个解析为MediaStream对象的Promise。如果
  用户拒绝权限,或匹配的媒体不可用,则
  承诺被NotAllowedError或NotFoundError拒绝
  分别。





  如果当前文档未安全加载,请navigator.mediaDevices
  将是未定义的,并且您不能使用getUserMedia()。请参阅安全性
  有关此问题以及与使用相关的其他安全性问题的更多信息
  getUserMedia()


因此,我猜您的应用程序确实存在安全问题(您应该已经通过https应用程序获得了访问权限)。

此外,在here中:


  从Chrome 47开始,仅允许来自以下位置的getUserMedia()请求:
  安全来源:HTTPS或本地主机

关于javascript - 无法在移动Chrome浏览器上访问对象navigator.mediaDevices,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59580829/

10-12 12:50