我有点困惑。有没有简单的方法在我的VoIP .NET应用程序中使用DirectX设置正确的音频设备(输入/输出)?
“正确的音频设备”可能意味着 - 已在Windows中设置为默认设备。
E.g。 Skype(或X-Lite)在大多数情况下选择正确的音频设备。但是怎么样?只是获取设备列表并不能解决问题,因为我不知道如何选择合适的设备。
我认为XP和Vista(7)的解决方案可能有所不同。
提前谢谢!
答案 0 :(得分:2)
在Vista和Win7上,您可以使用MMDevice API IMMDeviceEnumerator :: GetDefaultAudioEndpoint,然后使用MMDevice :: GetId获取描述此设备的字符串。
在其他系统(包括Vista和Win7)上,您可以使用旧的MME API waveInGetDevCaps和waveOutGetDevCaps,使用deviceID = WAVE_MAPPER(-1)来获取描述默认设备的字符串。
答案 1 :(得分:0)
我最近不得不做类似的事情,但支持多个Windows版本。由于其简单性,我最终使用NAudio。捆绑了几个示例应用程序,因此您可以看到如何使用它。