Chrome扩展麦克风捕获

时间:2016-09-03 18:51:10

标签: javascript google-chrome audio google-chrome-extension

我有一个browser_action扩展名,用户可以按startstop来捕获一些音频输入。记录文件后,我想将其url转储到控制台中。问题是我无法访问麦克风。这是我到目前为止所尝试的:

navigator.webkitGetUserMedia - 不起作用,navigator.webkitGetUserMedia({ audio: true },...);使用MediaDeviceFailedDueToShutdown调用错误回调。我试着调查那个错误,但我发现没有什么有用的。这个错误无处可寻。

你能指导我走正确的道路吗?谢谢。

2 个答案:

答案 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"]