C# 如何在特定声卡中播放声音

C# 如何在特定声卡中播放声音,c#,windows,c#-4.0,audio,soundcard,C#,Windows,C# 4.0,Audio,Soundcard,我正在开发Csharp中的一个应用程序,我想读取外部声卡中的声音文件,是否有一个函数可以让我使用声卡的名称和音频文件的名称播放声音。 因此,如果我想创建3个按钮,并且我有3个声卡,每个按钮都与声卡相关(例如button1与声卡1相关…),哪些代码可以帮助我在特定声卡中播放音频文件???请给我一个代码,因为我正在准备一个通用警报,这样的代码将帮助我很多 提前感谢您我不知道在.net framework中有什么方法可以做到这一点。但您可以使用direct sound api: 查找可用设备,然后在中

我正在开发Csharp中的一个应用程序,我想读取外部声卡中的声音文件,是否有一个函数可以让我使用声卡的名称和音频文件的名称播放声音。 因此,如果我想创建3个按钮,并且我有3个声卡,每个按钮都与声卡相关(例如button1与声卡1相关…),哪些代码可以帮助我在特定声卡中播放音频文件???请给我一个代码,因为我正在准备一个通用警报,这样的代码将帮助我很多


提前感谢您

我不知道在.net framework中有什么方法可以做到这一点。但您可以使用direct sound api:

查找可用设备,然后在中使用所需设备的guid

请不要乱动注册表(或根本不要)来更改电脑的默认设备。这对你的用户来说是一个很大的麻烦

下面是一些在DirectX中本机播放声音的示例代码


您可以签出托管DirectX和/或XNA。通过为您提供DirectSound的托管包装器,您的生活可能会更轻松。

Hmm,我不相信有任何方法可以动态地将输出定向到特定的音频设备。你可能会发现我的答案很有趣。它完成了一些与您试图实现的目标相似的事情,尽管是以一种更迂回的方式实现的。(一台计算机有一个以上的声卡,比三个少得多,这是极不寻常的。)请看,还有。@Cody Gray:这并不罕见。即使是一个低端/车载声卡也通常允许切换到多个输出设备(例如S/PDIF与扬声器)。USB耳机也很常见。@Cody Gray,@Ben Schwehn:非常感谢您的回复,但昨天我找到了NAudio的解决方案,我认为它会起作用。谢谢您的反馈。我以前不认识NAudio@nicolecastel如何在两个声卡之间交换声音。