我一直在使用webkitGetUserMedia方法(getUserMedia通过adapter.js)在我的网络应用程序上为webRTC获取相机nad microhpone.我的服务器不安全(没有SSL证书).一切正常,直到我开始收到错误说:"getUserMedia()不再适用于不安全的起源.要使用此功能,您应该考虑将应用程序切换到安全的来源,例如HTTPS.请参阅https:// goo. gl/rStTGz了解更多详情."
我用谷歌搜索,我看到现在在Chrome中我需要使用navigator.mediaDevices.getUserMedia().我使用的是Chrome 47.0.2526.80 m,在此页面上https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia,它表示此版本应该支持此方法.但是,当我调用navigator.mediaDevices.getUserMedia时,我得到了未定义.所以现在我不能在Chrome中使用任何一种方法.
任何人都可以帮我解决这个问题.谢谢
根据新的Chrome更新(来自Google Chrome 47),Chrome浏览器不再支持getUserMedia(),而不是http://(Unsecure Origin),它将适用于https://(Secure Origin)
为了发展目的,
1.localhost被视为HTTP上的安全源,因此如果您能够从localhost运行服务器,则应该能够在该服务器上测试该功能.
2.您可以使用--unsafely-treat-insecure-origin-as-secure="http://example.com"
标志运行chrome (将"example.com"替换为您实际要测试的原点),这会将该来源视为此会话的安全.请注意,您还需要包含--user-data-dir=/test/only/profile/dir
为标志创建新的测试配置文件.
参考:https://sites.google.com/a/chromium.org/dev/Home/chromium-security/deprecating-powerful-features-on-insecure-origins
最后一次google-chrome更新使getUserMedia仅在安全起源上起作用.有一种方法可以使其工作,但仅用于开发目的.只需使用带有thoses选项的cmd运行chrome
--unsafely性治疗不安全的原产地,如安全="example.com"
和此选项使用新的用户配置文件
的user-data-DIR = /测试/只/简档/ DIR
FYI getUserMedia到目前为止在firefox上工作,但在我看来,它会推荐一个像google-chrome这样的安全来源.
只要您使用https,您仍然可以在Chrome 47中使用旧方法名称.名称更改与47的新安全源要求正交.看到其他答案.
对失踪方法:navigator.mediaDevices.getUserMedia
放入一个旗帜下背在Chrome中,所以您必须打开chrome://flags/#enable-experimental-web-platform-features
或使用最近adapter.js的版本,喜欢这里:/sf/ask/17360801/.