firefox - navigator.mediaDevices.getUserMedia 无法解析
问题描述
我发现,只有在选项卡处于活动状态或单击选项卡实例时,Firefox 中的 getUserMedia Promise 才会解决:(Firefox,81.0)
navigator.mediaDevices.getUserMedia({ audio: true}).then(() => console.log("done"))
否则,Promise 永远不会解决或拒绝。它在我看来就像一个错误。
我只在 Firefox 中看到过这种行为。Safari 和 Chrome 运行良好。我也玩过 about:config 中的媒体设置,但没有任何帮助
在我的测试中,我已经永久接受了音频许可。
谢谢
(编辑):附加信息: Firefox 在 about:config media.block-autoplay-until-in-foreground 中有设置。但此设置不会改变行为。也许应该?
(编辑 2020-12-10:Mozo 上的相关论坛帖子;;论坛: https: //support.mozilla.org/en-US/questions/1307318)
(解决了)
可以通过访问来绕过严格的媒体政策
about:prererences -> Security -> Autoplay
这提供了禁用自动播放阻止或将启用自动播放的网站列入白名单的可能性,并可以播放背景选项卡/Windows 的媒体。
编辑 (2020-12-01)
经过一些测试和调查,我发现使用自动播放可以在非焦点的 Firefox 选项卡/窗口中播放音频。但遗憾的是,对于 WebRTC/SIP,仍然无法绕过严格的政策。Promise 仍然没有解决。
解决方案
推荐阅读
- xamarin - 如何使用 Xamarin.android 从一台设备向所有已安装的设备发送 Firebase 推送通知?
- python - 从heroku上的Flask应用程序发送一个excel文件作为附件
- python - 具有可能为空的子对象列表的 Sqlalchemy 联合过滤器
- c# - 如何使用 appsettings.json 在 Serilog 中禁用服务器证书验证?
- java - JENA:在不同本体类的两个个体之间创建对象属性断言
- oauth-2.0 - 使用 oath2 通过 zoho analytics 访问方形库存计数
- javascript - OpenLayers - 如果从文件系统与 Web 服务器查看,地图的比例会有所不同
- c# - Log4ALA 不会在 Azure Log Analytics 上创建日志
- swiftui - SwiftUI - 使用按钮切换“收藏”动态项目
- sqlite - 在 Android 内部存储上使用 Sqlite