我想找到一个命令行或脚本那会告诉我如果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 支持通常直接内置于浏览器中,而 Adobe Flash 是一个插件,我不知道这如何可行。您可以通过浏览“chrome:plugins”页面来了解 Chrome 中的插件是什么。
例如,您可以从我的 Chrome 浏览器中看到 Adobe 插件。
另一方面,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