7

別のプログラムがサウンドを再生しているときに Winamp の音楽再生を停止する小さなバックグラウンド プログラムを作成しようとしています。Java を介した Winamp へのアクセスに関する部分は既に解決されており、現在再生中のサウンドを再生しているプログラムを検出する方法が必要です (おそらく、一部のプログラムが音楽を停止せずにサウンドを再生できるようにしたいと考えています)。私はJava(+ winapi)でこれを行っていますが、どの言語でもすべてが役に立ちます。

[編集]最初の質問で最初の反対票を獲得したので、ここにもう少し詳細があります.winapiの使用方法はすでに理解していますが(しかし、私はそれを知りません)、音量レベルなどをキャプチャします。それでも問題を引き起こすのは、再生されるサウンドの発信元と、どのプログラムがサウンドを再生するかの前述の検出です。これを行うのに役立つものは winapi にありますか?[/編集]

4

2 に答える 2

4

Deanna が述べたように、ボリューム ミキサー アプリケーション (システム トレイ アイコンから起動) と同じようにオーディオ再生セッションを列挙し、セッション ステータスを示すセッションごとのメーターを取得できます。

この回答でそれを行う C++ アプリケーションを見つけることができます: Windows 7 の個々のプログラムのピーク メーター。メーターはセッションごとであり、オーディオ対応アプリケーションには 1 つ以上のセッションが含まれる場合がありますが、それらを列挙する限り、アクティブな再生があるかどうかを最終的に把握できます。

于 2013-02-09T21:27:25.940 に答える
3

Vista+のWindows Core Audio APIを使用すると、各アプリケーションの VU レベルを取得できると思います (結局のところ、ミキサーに表示されます)。これにより、別のアプリケーションが再生されているときに、あるアプリケーションをオフにすることができます。

于 2013-02-08T10:51:22.003 に答える