如何检测Chrome标签是否正在播放音频?

时间:2017-01-14 12:14:34

标签: javascript google-chrome google-chrome-devtools

我想在特定标签上执行一个控制台命令,并接收一个布尔值答案,无论该标签是否正在播放音频。 (通常表示为标签标题附近的小扬声器图标)

可以这样做吗?

2 个答案:

答案 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}) 检测当前正在播放的音频和视频元素。适用于跨浏览器。