考虑到chrome扩展程序无法在manifest.json中请求音频权限,我已经读到获得权限的最佳方法是打开一个弹出窗口,要求用户访问音频。
尽管阅读了大量内容,但我还没有找到一种方法来做到这一点?是否有某处以这种方式记录请求权限?
在捕获用户媒体时收到错误回调后,我能够通过打开一个新选项卡来解决此问题。下面的函数详细介绍了这一点:
const captureUserMedia = callback => {
navigator.mediaDevices.getUserMedia({ audio: true, video: false })
.then(callback)
.catch(err => {
window.chrome.tabs.create({
url: 'request-mic.html'
});
});
};
request-mic.html
只是一个 html 文件,其中包含一个脚本标记,该标记引用了在选项卡中请求麦克风权限的request-mic.js
文件。此请求被扩展程序记住,您现在可以访问麦克风!
<script src="request-mic.js"></script>