【问题标题】:How can a Chrome extension get a user's permission to use user's computer's microphone?Chrome 扩展程序如何获得用户使用用户计算机麦克风的权限?
【发布时间】:2013-07-25 12:37:52
【问题描述】:
如果我们在 Chrome 上的网站中运行 HTML5 的 Web Speech API 的 JavaScript 代码,Chrome 将请求用户许可才能使用用户计算机的麦克风。
var recognition = new webkitSpeechRecognition();
recognition.start();
但是,如果我在 Chrome 扩展程序的页面上运行上述代码,Chrome 不会要求用户授予权限。 Chrome 扩展程序如何获得用户使用用户计算机麦克风的权限?
谢谢。
【问题讨论】:
标签:
google-chrome
google-chrome-extension
speech-recognition
voice-recognition
google-chrome-app
【解决方案1】:
我认为你必须自己实现它。在 chrome 扩展的 manifest.json 中,有一个权限参数。我认为首先您必须获得在该文件中使用麦克风的权限。我不知道调用的参数是什么,但您可以在文档中查看。
此权限警告仅在用户安装扩展程序时显示。之后,扩展程序可以随意打开/关闭麦克风。要获得用户的许可,首先检查哪个网站用户正在使用,以及是否要激活其上的麦克风。之后,只需在该网页中注入 HTML/CSS 代码,该代码将向用户显示一个请求她许可的弹出窗口。如果权限是yes,将消息发送到后台页面,然后打开它。
【解决方案2】:
您可以使用 navigator 全局对象在您的 chrome 扩展的 JS 文件中请求音频和/或视频权限:
navigator.getUserMedia({audio: true, video: true})
虽然 MDN 说它是 deprecated,但你可以改用它:
navigator.mediaDevices.getUserMedia({audio: true})
检查 this tutorial 以及 JS 的一些替代方案。