在Windows 7上更改默认音频设备

22

我希望能够使用C#(以及可能一些底层的Win32 API调用)通过编程方式更改Windows 7上的默认音频输出设备。我已经完成了我的功课,并从不同的来源听到了很多混杂的评论,因此我想再次提出这个问题,以获得一个直截了当的答案。是否有任何方式可以实现这一点?如果是,该如何操作?

请不要建议使用"AutoIt"或其他类似程序的解决方案...这是一个特定于C#/.NET的问题。


很有可能你会从另一个来源得到更多的混合评论。这里是其中之一:只有用户选择她想要听的音频设备。 - Hans Passant
4
+1 我在考虑自己编写这个程序。我真的很讨厌在耳机和HDMI输出之间切换。 - Kugel
2个回答

17

一个更新至今的答案,兼容Windows 10

这个程序能够以美观的方式完成它(通过热键在预选设备之间切换),并且是用 C# 编写的: SoundSwitch on GitHub

一些逆向工程应该可以帮你实现它(对我来说,这个程序已经完美了)。

它使用了同样作者编写的 C++ 库: AudioEndpointLibrary on GitHub

所以如果你懂 C++(我不太懂),你可以进一步分析它的工作原理。或者像 SoundSwitch 一样使用这个库。


1
关于SoundSwitch的一点说明:有时它不可靠,因为它将音频设备设置为通信设备而不是音频输出,并且有时设备会从其系统托盘菜单中被遗忘。但这是一个开始。 - mattshu

14

1
它在Win 8.1上可以工作,但不幸的是在Windows 10上无法工作了,有任何解决方案吗? - Jens Marchewka
你可以检查我的答案,看看它是否适用于W10! - Mickael V.
3
该链接已失效。 - Conner Dassen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接