如何在Visual Basic .NET中找到默认音频设备?

时间:2012-03-19 13:33:34

标签: .net windows audio

这需要能够适用于最后两个或三个Windows版本(7,Vista,可能还有XP)。在Visual Basic .NET中,如何找到默认音频设备(我正在寻找扬声器和东西,而不是麦克风)。谢谢!

编辑:伙计们,我真的走进了这里不熟悉的领域。似乎每次我尝试使用代码示例时,都会出现构建错误,这些错误不会更加神秘,并且涉及库内部发生的错误以及各种类似的错误。有没有什么可以让初学者学习如何做到这一点?谢谢!

2 个答案:

答案 0 :(得分:2)

Windows中有一些音频API,它们都提供设备枚举。最近的“主要”API仅限Vista +,因此您需要确定XP支持是否重要。

Vista +枚举:Enumerating Audio Devices

适用于所有Windows版本的代码:Sample: how to enumerate waveIn and waveOut devices on your system

这些是上面的C ++代码链接,在VB.NET中,您将需要P / Invoke调用或包装库,例如NAudio来处理内部细节。

答案 1 :(得分:0)

某些音频API(winMM,DirectSound,DirectShow,Media Foundation,WASAPI)允许您枚举设备,但提供默认值; some(Beep,PlaySound)只允许通过默认设备播放。

最简单的API是PlaySound(好吧,除了Beep之外,但它的用处有限。)你想玩什么?这将有助于确定要使用的API的选择。