我想在加载时检测是否已在我的网站上授予麦克风权限,而无需实际运行以下内容:
navigator.webkitGetUserMedia({audio: active},
function(){alert('worked')},
function(){alert('failed')});
是否有一个简单的 API 来检测用户是否已永久授予麦克风访问我的应用程序(通过 https 运行)?
原文由 E T 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想在加载时检测是否已在我的网站上授予麦克风权限,而无需实际运行以下内容:
navigator.webkitGetUserMedia({audio: active},
function(){alert('worked')},
function(){alert('failed')});
是否有一个简单的 API 来检测用户是否已永久授予麦克风访问我的应用程序(通过 https 运行)?
原文由 E T 发布,翻译遵循 CC BY-SA 4.0 许可协议
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答889 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
更新
microphone
已添加到 权限 API ,即使它在 Safari 或 Internet Explorer 上尚不可用。你可能希望它可以从权限 api 访问,但它不是:(
也许在功能中这可以像其余部分一样工作:
旧答案
我认为可能的唯一方法是,如果您在请求许可时使用 localStorage 中的键/值项自己跟踪这个。
不幸的是,它在更改时不会通知您
您可以加倍努力,使用上面的代码构建一个漂亮的小包装器,并扩展/替换权限 api 以处理更多枚举名称,并创建 广播 api 以在更改时通知其他选项卡。但为什么要让它变得如此复杂……? localStorage 不能 100% 可信。在获得许可和清除存储的情况下,可以随时随地更改它