如何从.Net应用程序中识别默认音频设备?

时间:2009-11-27 14:47:42

标签: .net windows audio

我有点困惑。有没有简单的方法在我的VoIP .NET应用程序中使用DirectX设置正确的音频设备(输入/输出)?

“正确的音频设备”可能意味着 - 已在Windows中设置为默认设备。

E.g。 Skype(或X-Lite)在大多数情况下选择正确的音频设备。但是怎么样?只是获取设备列表并不能解决问题,因为我不知道如何选择合适的设备。

我认为XP和Vista(7)的解决方案可能有所不同。

提前谢谢!

2 个答案:

答案 0 :(得分:2)

在Vista和Win7上,您可以使用MMDevice API IMMDeviceEnumerator :: GetDefaultAudioEndpoint,然后使用MMDevice :: GetId获取描述此设备的字符串。

在其他系统(包括Vista和Win7)上,您可以使用旧的MME API waveInGetDevCaps和waveOutGetDevCaps,使用deviceID = WAVE_MAPPER(-1)来获取描述默认设备的字符串。

答案 1 :(得分:0)

我最近不得不做类似的事情,但支持多个Windows版本。由于其简单性,我最终使用NAudio。捆绑了几个示例应用程序,因此您可以看到如何使用它。