2

检测是否正在播放任何视频?

视频可以在任何本地播放器、基于网络的播放器或 html5 播放器中播放/流式传输。我们不知道播放器的名称,也可能播放器没有全屏显示。

PS。检测 CPU 负载可能不会总是给出正确的结果,因此它是不可接受的。

4

1 回答 1

2

那天我在这方面做了一些工作。有一个 WIN32API(老派)获取/设置是否禁用屏幕保护程序(在 user32.dll、GetScreenSaverActive()、SetScreenSaverActive - 请参阅: http: //www.codeproject.com/Articles/17067/Controlling-The -屏幕保护程序-带-C)。这是视频播放时最有可能设置的标志,但它不是 100% 可靠的,因为并非每个播放器都会实现它。它适用于大多数浏览器视频,无论是通过插件播放、本机播放还是通过 DirectX 播放。这也适用于大多数(所有?)外部播放器,例如 vlc、windvd 等。

但。

没有万无一失的、100% 确定视频播放的方法。你不能; 1. 检查声音播放,因为用户可能正在使用 iTunes,并且并非所有视频都有声音 2. 检查全屏(通常是更好的选择),因为视频可能正在浏览器中播放 3. 检查 cpu/gpu 负载,因为它不是可靠,您没有其他方法可以确定 4. 绝对确保播放器在最小化时没有清除/重置 win32 标志

另一种选择是尝试整理所有已知播放器的可能可执行名称列表(查找数据可行但耗时,尤其是在旧版本上),并检查它们是否正在运行。这不是 100% 可靠的,或者作为插件通过预加载但浏览器但当时并没有实际播放视频。

简而言之,我知道没有 100% 的方法,但有几种方法可以让你达到 90-95%。这就是知道是否有视频播放的目的?也许有一种更简单的方法可以找到您要查找的内容...

于 2013-02-14T21:22:48.187 回答