2009-11-27 4 views
0

Je suis un peu confus. Existe-t-il un moyen simple de régler les périphériques audio (entrée/sortie) dans mon application VoIP .NET sans utiliser DirectX? "Appareils audio corrects" signifie probablement - les appareils qui sont déjà définis comme DEFAULT dans Windows.Comment identifier les périphériques audio par défaut à partir d'une application .Net?

E.g. Skype (ou X-Lite) sélectionne dans la plupart des cas les périphériques audio correctement. Mais comment? Juste obtenir de la liste des appareils ne résout pas le problème, parce que je ne sais pas comment choisir le bon.

Je suppose que les solutions pour XP et Vista (7) pourraient être différentes.

Merci d'avance!

+0

Salut Lazarus, merci de votre réponse. J'utilise une bibliothèque voip open source qui utilise son portaudio pour gérer les périphériques audio. Donc, je peux obtenir une liste de tous les périphériques audio disponibles dans Windows. C'est ce que j'ai. La question est, comment sélectionner les périphériques (in/out) de la liste qui sont déjà définis dans le système comme DEFAULT. –

Répondre

1

Sous Vista et Win7, vous pouvez utiliser l'API MMDevice IMMDeviceEnumerator :: GetDefaultAudioEndpoint, puis utiliser MMDevice :: GetId pour obtenir la chaîne décrivant ce périphérique.

Sur d'autres systèmes (y compris Vista et Win7), vous pouvez utiliser l'ancienne API MME waveInGetDevCaps et waveOutGetDevCaps en utilisant deviceID = WAVE_MAPPER (-1) pour obtenir la chaîne décrivant le périphérique par défaut.

+0

Ouais, c'est tout! Merci! –

0

J'ai récemment dû faire quelque chose de similaire, mais supporter plusieurs versions de Windows. J'ai fini par utiliser NAudio en raison de sa simplicité. Il y a plusieurs exemples d'applications regroupées afin que vous puissiez voir comment l'utiliser.

+0

Merci, votre solution pourrait également être utilisée dans certains cas! –

Questions connexes