我正在 Chrome 中创建音乐播放器扩展,并且由于 V2 已被淘汰,所以我正在使用 Manifest V3。然而,由于 V3 和 Service Worker 存在一些限制,例如无法访问 DOM,我有一段时间想知道是否以及如何在后台播放音乐(扩展名未显示)。有人知道如何用 MV3 实现吗?
在后台(又名服务工作者)你不能。
现在有2-3种选择。
你可以:
编辑
回应您的正义感...
我个人建议第一个选项。
我在 Chrome Canary 中测试了第三个选项,但我从未测试过第二个选项。
对重新启动音乐(遵循选项#2)的担忧可以通过以编程方式注入并检查(通过消息交换)是否存在已经在播放的注入脚本来缓解。
但是,如果注入 cs 的选项卡已关闭,则有必要在另一个选项卡上注入或通过实际“跳转”(如您所写)复制来创建一个新选项卡。
另一个痛处是,按照方法 #2,你必须定义你的 c.s.将“match”子句设置为“
另一个不太重要的方面是,如果没有更多适合“注入”的标签,音乐就会停止。
最后,我想知道选项卡标签上的小音频图标是否出现在注入的选项卡中(看起来不太好)
chrome://flags/ 转到此链接并重置所有内容。为我工作
这是我编写的一个在后台播放音乐的 Chrome 扩展示例:
https://chromewebstore.google.com/detail/music-for-programming/kdmmpbhgjfcabbcippaocnajeobjlldp
在 Service Worker 中,您可以使用 chrome.offscreen
创建
{reasons: [AUDIO_PLAYBACK]}
文档。然后,您可以连续播放该离屏文档中的音频/音乐。