対象の Windows のバージョンが指定されていません。アプリケーションごとにオーディオを制御したい場合は、大きな違いがあります。
Windows 7 では、アプリケーション (まあ.. ストリーム) ごとに音量を制御できます。
ASIO を使用するアプリケーションをこのように制御することはできませんが、Windows Media Player だけを気にするのであれば問題にはなりません。
Core Audio API を介して、ストリームの音量 (またはミュート) を制御できます。IAudioEndpointVolume
またはISimpleAudioVolume
インターフェイス。
ただし、ミキサーのボリュームをいじることはお勧めしません。
Windows には、必要な処理を実行するメカニズムが組み込まれています。ducking
これはまたはと呼ばれstream attenuation
、「コミュニケーション」ストリームの開始時にすべての非コミュニケーション オーディオ ストリームの音量を下げる/ミュートするためのものです。
Windows マルチメディア コントロール パネル (Mmsys.cpl) では、[通信] タブで既定の動作を構成できます。
デフォルトの通信デバイスを見つけて、それを介してオーディオを再生する必要があります。
ここのユニットは、それを見つけるのに役立ちます:
http://code.google.com/p/mfpack-media-foundation/source/browse/trunk/MFPACK/CoreAudio/MMDeviceAPI/MMDeviceApi.pas
ここから先は、オーディオを再生するときに自動的にダッキングが発生するかどうかは 100% ではありません。私は自分で試したことはありませんが、これが正しい方向に導くことを願っています。結果を予約する場合はお知らせください。
ps: もし私があなただったら、mfpackをもう少し詳しく見てみたいと思います。なぜなら、この種のものには便利なライブラリのようだからです。そのプロジェクトには 3 人のコミッター (maxcmx、factoryx.code、および Peter larson) がいることがわかります。彼らはあなたの目標を正しい方法で達成する方法を教えてくれると確信しています.