Cómo hacer que mi aplicación sea considerada como un programa de comunicación en Windows
-
29-10-2019 - |
Pregunta
Estoy haciendo un programa que usa la biblioteca de discursos y me gustaría obtener todos los demás sonidos apagados o reducidos cuando la dama está hablando.
He estado buscando una manera de silenciar otras aplicaciones manualmente, pero he visto una opción en Windows en la pestaña de comunicación (dentro de las opciones de sonido) que menciona que la ventana puede administrar esto para mí. Como en esta imagen:
Entonces, básicamente, ¿qué se necesita para que mi aplicación se considere como una aplicación de comunicación (como Skype)?
Solución
Creo que las aplicaciones de comunicación están implementando algo relacionado con el IAudioVolumeDuckNotification
interfaz. El ejemplo de C ++ proporcionó también referencias WM_VOLUME_DUCK
y WM_VOLUME_UNDUCK
Mensajes de Windows que pueden ser suficientes (pero no parecen ser de Google o documentados).
ACTUALIZAR
los Proyecto de API de audio de .NET Core En CodePlex parece proporcionar un envoltorio .NET.
ACTUALIZAR
Una muestra de implementación de C ++ de IAudioVolumeDuckNotification
así como un ejemplo de notificación al ducked
El estado se puede encontrar en el MSDN DuckingMediaPlayer
Aplicación de muestra. En realidad funciona (lo probé). Una combinación de pinvoke'ing un par de métodos y el envoltorio .NET para la interfaz debería ser suficiente para ponerlo en camino.