我有一个browser_action
扩展名,用户可以按start
和stop
来捕获一些音频输入。记录文件后,我想将其url转储到控制台中。问题是我无法访问麦克风。这是我到目前为止所尝试的:
navigator.webkitGetUserMedia
- 不起作用,navigator.webkitGetUserMedia({ audio: true },...);
使用MediaDeviceFailedDueToShutdown调用错误回调。我试着调查那个错误,但我发现没有什么有用的。这个错误无处可寻。
你能指导我走正确的道路吗?谢谢。
答案 0 :(得分:5)
因此事实证明,我必须从扩展本身的html页面中获取用户媒体。在用户授权访问麦克风后,扩展程序的后台脚本也可以访问它。
在我的情况下,安装后我启动了welcome.html
页面,请求访问:
background.js
chrome.runtime.onInstalled.addListener((details) => {
if (details.reason.search(/install/g) === -1) {
return
}
chrome.tabs.create({
url: chrome.extension.getURL("welcome.html"),
active: true
})
})
welcome.js
navigator.webkitGetUserMedia({ audio: true }, s => {...}, err => {...}
答案 1 :(得分:0)
尝试将“ audioCapture”添加到manifest.json中的权限中:
"permissions": ["fullscreen", "audioCapture"]