如何确定浏览器中是否正在运行 HTML5 播放器?

如何确定浏览器中是否正在运行 HTML5 播放器?

我想找到一个命令行或脚本那会告诉我如果HTML5播放器是否在浏览器(firefox 或 chromium)中运行。

例如,要确定 Flash 播放器是否正在浏览器中运行,我使用以下命令:

pgrep -lfc ".*((c|C)hrome|chromium|firefox|).*flashp.*"

答案1

这个问题不一定可以使用命令行解决(正如您似乎想要做的那样)。不会发生分叉,玩家在处理该网页的进程内运行,从而无法检查ps

但是,可以通过网站源代码访问该解决方案。以下解决方案可能有效:

$ curl http://example.com/ | grep '<video'

请注意,该网站可能使用脚本来放置播放器,您需要使用 Firebug 或 WebKit Inspector 访问实时网站代码并video在那里搜索标签。

对于 YouTube,正在寻找"html5": true源代码中的替代解决方案,但 YouTube 上的 HTML5 需要身份验证,这对于curl.

答案2

鉴于 HTML5 支持通常直接内置于浏览器中,而 Adob​​e Flash 是一个插件,我不知道这如何可行。您可以通过浏览“chrome:plugins”页面来了解 Chrome 中的插件是什么。

例如,您可以从我的 Chrome 浏览器中看到 Adob​​e 插件。

          插件的ss

另一方面,HTML5 没有任何相应的插件,因此在处理此类内容时,您不会看到 Chrome 分叉出一个进程。

答案3

它不能直接完成所要求的任务,但也许可以通过在“wmctrl -l”管道上查找潜在的 HTML5/flash 播放器站点名称并结合声音检测来实现相同效果(实际上范围更广)。 。

if wmctrl -l | grep -i "youtube\|vimeo\|etc" && \
grep RUNNING /proc/asound/card*/pcm*/sub*/status ; then 
echo "some media-site is possibly playing something. 
At least the OS is playing something and some video
site is on the top tab on some browser" ; 
else
echo "there may well be some HTML video going on 
in some browser, but it's either not on the top tab
or not playing audio, so..."
fi

相关内容