Chrome 最近发布了其媒体设置的更新,提示用户向允许访问他/她的麦克风和摄像头的站点授予权限。有没有办法在 Javascript 中检测这些设置?
我有一个带有麦克风功能的 Flash 播放器(最终将基于 HTML5)。播放器当前设置了一个关于如何在开始 session 之前授予权限的友好教程。但是,自从 Chrome 发布更新后,flash 播放器和 Chrome 权限发生冲突,导致 flash 出错,直到用户允许/拒绝 Chrome 设置提示。在播放器移至 HTML5 之前,我想做的是检测浏览器是否为 Chrome(具有适当的版本)以及用户的设置是否未设置为显示其他教程屏幕。
最佳答案
一些事情:
- 这是特定于 Chrome 实现的,因此除非 Chrome 向您的应用提供该信息,否则您无法判断用户授予了哪些权限。 IE。没有您可以查询此信息的 API。
- 它甚至不是 Chrome 存储的东西。如果您查看 advanced settings tab on this page ,您会发现它是基于每个应用程序的,而不是一次性的。如果特定应用程序通过
https
请求权限,Chrome 只会记住为特定应用程序授予的权限。如果它通过http
请求它,那么它会忘记授予的权限。
您最好的选择(虽然绝不是完全可靠的)是嗅出浏览器代理和版本。有关此的更好实现之一,请参阅 here .
您需要专门查找 Chrome 和任何 >= 21 的版本。(21 是引入 getMediaApi
的版本)。然后是一个简单的 if
检查:
if (version >= 21){
//ask permission though the getMediaApi
} else{
//ask permission though flash
}
关于javascript - 在 Javascript 中检测 Chrome 媒体设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17624314/