编辑:
随着年底和 Manifest V2 即将结束,我对此做了更多研究,并发现了以下解决方法:
这里使用 API 的示例desktopCapture:
https ://github.com/GoogleChrome/chrome-extensions-samples/issues/627
这种方法的问题在于,它要求用户通过某些 UI 选择捕获源,这可能会造成破坏。命令--auto-select-desktop-capture-source行开关显然可以用来绕过这个,但我还没有能够成功地使用它。
这里的示例扩展tabCapture通过创建自己的非活动选项卡来访问tabCaptureAPI 并记录当前
活动选项卡,从而解决了在 Service Worker 中无法工作的问题:
https://github.com/zhw2590582/chrome-audio-capture
到目前为止,这似乎是我在用户体验方面找到的最佳解决方案。Manifest V2 中提供的背景页面本质上被替换为虚拟选项卡。
第二个解决方案的迂回似乎也表明该tabCaptureAPI 本质上不适合在 Manifest V3 中使用,否则会有更直接的使用方式。我很失望的是,Manifest V3 正在强制执行,而实质上却留下了 Manifest V2 的功能,例如这一点。
原帖:
我正在尝试编写一个清单 v3 Chrome 扩展来捕获选项卡音频。但据我所知,清单 v3 中存在一些更改,这使得这有点困难:
chrome.tabCaptureAPI。尽管如此,我还是设法得到了一些几乎可以工作的东西,因为弹出脚本仍然可以访问chrome.tabCapture. 但是,有一个缺点 - 选项卡的音频被静音,并且似乎没有办法取消静音。这是我到目前为止所拥有的:
let tabId;
// Fetch tab immediately
chrome.runtime.sendMessage({command: 'query-active-tab'}, …Run Code Online (Sandbox Code Playgroud)