我一直在开发一个使用对象导航器流式网络摄像头的应用程序。
它可以在我的PC浏览器上完美运行,这是github链接。
但是,当我在手机上启动该应用程序时,它会崩溃。我一直进行不同的测试,直到发现由于某种原因无法在移动浏览器上访问对象导航器。
这就是我发现的方式。我创建了这个功能:
logErrors(){
return(navigator.mediaDevices.toString())
}
我以这种方式显示它:
<h1>{this.logErrors()}</h1>
PS:如果语法看起来有些奇怪,我正在使用React。
无论如何,在我的PC浏览器上,我得到了:
在我的手机浏览器上,出现以下错误:
知道为什么无法在手机浏览器上访问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/