Take the 2-minute tour ×

I'm making a program that uses the Speech library and I'd like to get all other sounds muted or reduced when the lady is talking.

I've been looking for a way to mute other applications manually, but I've seen an option in Windows in the communication tab (inside the sound options) that mentions that window can manage this for me. Like in this picture:

enter image description here

So basically, what does it take for my application to be considered as a communication application (such as Skype)?

share|improve this question
msdn.microsoft.com/en-us/library/windows/desktop/… may be relevant. Haven't looked at it in enough detail to write an answer. –  Random832 Jan 16 '12 at 19:50
Maybe this is what you are looking for. Never used it myself, so i can't give you a proper way how to register you program as such an application. –  dowhilefor Jan 16 '12 at 19:52
add comment

1 Answer

up vote 5 down vote accepted

I believe the communication apps are implementing something related to the IAudioVolumeDuckNotification interface. The C++ example provided also references WM_VOLUME_DUCK and WM_VOLUME_UNDUCK windows messages which may be enough (but don't appear to be google-able or documented).


The .NET Core Audio API project on CodePlex appears to provide a .NET wrapper.


A sample C++ implementation of IAudioVolumeDuckNotification as well as an example of notifying the ducked state can be found in the MSDN DuckingMediaPlayer sample application. It actually works (I tried it). A combination of PInvoke'ing a couple methods and the .NET wrapper for the interface should be enough to get you on your way.

share|improve this answer
add comment

Your Answer


