Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to make my application be considered as a communication program in Windows

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)?

like image 586
Pacane Avatar asked Jan 16 '12 19:01

Pacane


People also ask

How does IPC work in Windows?

The Windows operating system provides mechanisms for facilitating communications and data sharing between applications. Collectively, the activities enabled by these mechanisms are called interprocess communications (IPC). Some forms of IPC facilitate the division of labor among several specialized processes.

What is Microsoft communications app?

In particular, Microsoft Teams communication applications offer new ways to communicate information, simplify quick conversations, and manage workforce-related messages.

What are different way to run an Window application?

First, locate the application in your start menu or on your desktop, right-click its shortcut, and select Properties. Click the Shortcut key box and type your desired keyboard shortcut. Press the keyboard shortcut you define here to launch the application from anywhere in Windows.


1 Answers

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).

UPDATE

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

UPDATE

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.

like image 123
3 revs Avatar answered Sep 20 '22 18:09

3 revs