Как сделать так, чтобы мое приложение рассматривалось как коммуникационная программа в Windows - PullRequest
18 голосов
/ 16 января 2012

Я делаю программу, которая использует библиотеку речи, и я хотел бы, чтобы все другие звуки были отключены или уменьшены, когда дама разговаривает.

Я искал способ отключить звук других приложений вручную, но я видел вариант в Windows на вкладке «Связь» (внутри параметров звука), в котором упоминается, что окно может управлять этим для меня. Как на этой картинке:

enter image description here

Итак, в общем, что нужно для того, чтобы мое приложение считалось приложением связи (например, Skype)?

1 Ответ

5 голосов
/ 17 января 2012

Я считаю, что коммуникационные приложения реализуют что-то связанное с интерфейсом IAudioVolumeDuckNotification.Приведенный пример C ++ также ссылается на сообщения WM_VOLUME_DUCK и WM_VOLUME_UNDUCK windows, которых может быть достаточно (но, по-видимому, они не доступны для Google или не задокументированы).

ОБНОВЛЕНИЕ

Проект .NET Core Audio API в CodePlex предоставляет оболочку .NET.

ОБНОВЛЕНИЕ

Пример реализации C ++ дляIAudioVolumeDuckNotification, а также пример уведомления о состоянии ducked можно найти в примере приложения MSDN DuckingMediaPlayer.Это на самом деле работает (я пробовал).Сочетание PInvoke'а с несколькими методами и оболочки .NET для интерфейса должно быть достаточным для того, чтобы помочь вам.

...