Come fare in modo che la mia applicazione venga considerata un programma di comunicazione in Windows
-
29-10-2019 - |
Domanda
Sto realizzando un programma che usa la biblioteca del discorso e mi piacerebbe ottenere tutti gli altri suoni si sono ridotti o ridotti quando la signora sta parlando.
Ho cercato un modo per disattivare le altre applicazioni manualmente, ma ho visto un'opzione in Windows nella scheda Communication (all'interno delle opzioni audio) che menziona che la finestra può gestirlo per me. Come in questa foto:
Quindi, in sostanza, cosa ci vuole affinché la mia applicazione sia considerata come un'applicazione di comunicazione (come Skype)?
Soluzione
Credo che le app di comunicazione stiano implementando qualcosa di relativo al IAudioVolumeDuckNotification
interfaccia. L'esempio C ++ fornito anche riferimenti WM_VOLUME_DUCK
e WM_VOLUME_UNDUCK
Messaggi di Windows che potrebbero essere sufficienti (ma non sembrano essere Google o documentati).
AGGIORNARE
Il .NET Core Audio API Project su codeplex sembra fornire un wrapper .net.
AGGIORNARE
Un'implementazione C ++ di esempio di IAudioVolumeDuckNotification
così come un esempio di notifica al ducked
lo stato può essere trovato nell'MSDN DuckingMediaPlayer
applicazione di esempio. In realtà funziona (l'ho provato). Una combinazione di pinvoke di un paio di metodi e l'involucro .NET per l'interfaccia dovrebbe essere sufficiente per farti per la strada.