2012-01-16 9 views
18

Sto creando un programma che utilizza la libreria vocale e vorrei ottenere tutti gli altri suoni disattivati ​​o ridotti quando la signora sta parlando.Come rendere la mia applicazione considerata come un programma di comunicazione in Windows

Ho cercato un modo per disattivare manualmente altre applicazioni, ma ho visto un'opzione in Windows nella scheda di comunicazione (all'interno delle opzioni audio) che indica che la finestra può gestirmi. Come in questa immagine:

enter image description here

Quindi, in pratica, che cosa ci vuole per la mia applicazione per essere considerato come applicazione di comunicazione (come Skype)?

+1

http://msdn.microsoft.com/en-us/library/windows/desktop/dd940522(v=vs.85).aspx potrebbe essere rilevante. Non l'ho guardato in modo sufficientemente dettagliato da scrivere una risposta. – Random832

+0

Forse [questo] (http://msdn.microsoft.com/en-us/library/windows/desktop/dd316773%28v=vs.85%29.aspx) è quello che stai cercando. Non l'ho mai usato da solo, quindi non posso darti un modo corretto per registrare il tuo programma come tale applicazione. – dowhilefor

risposta

5

Credo che le app di comunicazione stiano implementando qualcosa relativo all'interfaccia IAudioVolumeDuckNotification. L'esempio C++ ha fornito anche i riferimenti WM_VOLUME_DUCK e WM_VOLUME_UNDUCK messaggi di Windows che possono essere sufficienti (ma non sembrano essere google-able o documentati).

UPDATE

La .NET Core Audio API project su CodePlex sembra fornire un wrapper .NET.

UPDATE

Un campione C++ attuazione di IAudioVolumeDuckNotification nonché un esempio di notifica dello stato ducked possono essere trovati nella domanda di esempio MSDN DuckingMediaPlayer. Funziona davvero (l'ho provato). Una combinazione di PInvoke'ing un paio di metodi e il wrapper .NET per l'interfaccia dovrebbe essere sufficiente per farti strada.

Problemi correlati