2

、またはを使用して現在再生中のビデオがあるかどうかを検出する方法は?

ビデオは、任意のローカル プレーヤー、Web ベースのプレーヤー、または html5 プレーヤーで再生/ストリーミングできます。プレーヤーの名前もわかりません。また、プレーヤーが全画面表示されていない可能性があります。

PS。CPU 負荷を検出しても常に正しい結果が得られるとは限らないため、受け入れられません。

4

1 に答える 1

2

私はその日にこれについて少し仕事をしました。スクリーンセーバーを無効にするかどうかを取得/設定する WIN32API (古い学校) があります (user32.dll、GetScreenSaverActive()、SetScreenSaverActive - 参照: http://www.codeproject.com/Articles/17067/Controlling-The -Screen-Saver-With-C )。これは、動画の再生中に設定される可能性が最も高いフラグですが、すべてのプレーヤーが実装するわけではないため、100% 信頼できるわけではありません。プラグイン、ネイティブ、または DirectX 経由で再生するかどうかに関係なく、ほとんどのブラウザー ビデオで機能します。これは、vlc、windvd などのほとんどの (すべての?) 外部プレーヤーでも機能します。

しかし。

動画の再生を確実に判断する 100% の方法はありません。それはいけません; 1. ユーザーが iTunes を使用している可能性があり、すべてのビデオにサウンドが含まれているわけではないため、サウンドの再生を確認します。信頼性が高く、他に決定する方法がない 4. プレーヤーが最小化されたときに win32 フラグをクリア/リセットしていないことを絶対に確認してください

もう 1 つのオプションは、既知のすべてのプレーヤーの実行可能ファイル名のリストを作成して照合し (実行可能ですが、特に古いバージョンではデータを見つけるのに時間がかかります)、それらが実行されているかどうかを確認することです。これは、プリロードされたプラグインとしてもブラウザとしても 100% 信頼できるわけではありませんが、その時点で実際にビデオを再生するわけではありません。

要するに、私が知っている 100% の方法はありませんが、90 ~ 95% 達成できる方法はいくつかあります。それは、再生中のビデオがあるかどうかを知る目的ですか? 探しているものを簡単に見つける方法があるかもしれません...

于 2013-02-14T21:22:48.187 に答える