我想在特定标签上执行一个控制台命令,并接收一个布尔值答案,无论该标签是否正在播放音频。 (通常表示为标签标题附近的小扬声器图标)
可以这样做吗?
答案 0 :(得分:4)
您可以使用chrome.tabs API检测Chrome标签是否正在使用Chrome扩展程序播放音频。 API提供了一个布尔audible
属性,如下所述:
标签是否在过去几秒钟内产生了声音 (但如果也静音则可能听不到)。相当于是否 扬声器音频指示器正在显示。
来源: https://developer.chrome.com/extensions/tabs
无法从控制台本身访问选项卡,因为它是从当前页面的上下文运行的。在Chrome扩展程序的后台页面中,您可以访问所有选项卡,并可以使用上述API查询它们。您的扩展程序可以简单地提供一个面板,显示所有打开的选项卡列表以及一个标记,说明音频是否正在播放。
旁白:如果您只想使用Chrome控制台在当前标签页中快速静音HTML5音频/视频,则可以运行以下内容($$
相当于{{1} }}):
document.querySelectorAll()
答案 1 :(得分:4)
也许这样的事情可以解决你的问题:
!!Array.prototype.find.call(document.querySelectorAll('audio,video'),function(elem){return elem.duration > 0 && !elem.paused})
检测当前正在播放的音频和视频元素。适用于跨浏览器。