H5部署后,如何解决页面video媒体获取navigator.mediaDevices获取不到的问题?

H5部署后,如何解决页面video媒体获取navigator.mediaDevices获取不到的问题?

H5项目部署后,navigator.mediaDevices无法获取视频媒体设备的解决方法

在H5应用部署过程中,开发者经常遇到navigator.mediaDevices返回undefined的情况,尤其是在http页面嵌套https iframe的场景下,即使在iframe内也无法获取媒体权限。 问题通常出现在HTTP根页面嵌入HTTPS iframe的结构中,localhost、HTTPS和file://环境下的解决方案在此无效。

解决方法:修改chrome浏览器安全策略。

步骤如下:

  1. 访问Chrome浏览器实验性功能页面: 在地址栏输入chrome://flags/#unsafely-treat-insecure-origin-as-secure 并回车。

  2. 启用“将不安全来源视为安全”: 找到“将不安全来源视为安全”选项(Insecure origins treated as secure),将其设置为“已启用”。

  3. 添加HTTP域名: 在该选项下方的文本框中,输入你的HTTP域名。

  4. 重启浏览器: 完成设置后,重启Chrome浏览器使更改生效。

通过以上步骤,你的HTTP页面应该能够通过navigator.mediaDevices正常访问媒体设备了。此方法经验证有效。 注意: 此方法修改了浏览器安全策略,仅用于开发和测试环境,不建议在生产环境中使用,因为它会降低安全性。 生产环境下,应采用HTTPS协议部署整个应用。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享