javascript - 在 Javascript 中检测 Chrome 媒体设置

标签 javascript google-chrome

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/

相关文章:

javascript - 如何根据javascript中的输入值更改背景框

CSS 溢出 :scroll doesn't work only for iFrame in Chrome, Safari 和 Opera

javascript - Chrome推送通知-点击后如何打开URL地址?

html - 如何为 chrome 和 Firefox 添加查看密码图标?

javascript - 具有参数的函数上的clearTimeout

javascript - 提交表单时,在新选项卡中打开新页面并重定向原始页面

javascript - 为什么 Chrome 会在 "pre"标签中加载我的 HTML?

windows - 在新窗口中从命令行在 windows 中打开 chrome

javascript - 在 URL 中实现 JavaScript 和文本

javascript - 如何使用 laravel mix (webpack) 在全局范围内公开 js 变量?