如何从C#以编程方式控制Win7中的麦克风和麦克风增强设置?

如何从C#以编程方式控制Win7中的麦克风和麦克风增强设置?,c#,winapi,windows-7,com,volume,C#,Winapi,Windows 7,Com,Volume,Windows 7有一些新的音频设置,我无法从我的C#应用程序控制这些设置。具体而言,在输入(麦克风)属性中,有一个包含麦克风和麦克风助推滑块的“级别”选项卡,以及一个麦克风静音切换/复选框 我需要通过编程确保麦克风没有静音,但还没有找到读取或设置值所需的API。您可以使用Caster Tiu从windows mixer中构建的非常有用的库 根据本页上的文档: 使用ValueAsSigned、ValueAsUnsigned和ValueAsBoolean属性,可以通过MixerControl对象访

Windows 7有一些新的音频设置,我无法从我的C#应用程序控制这些设置。具体而言,在输入(麦克风)属性中,有一个包含麦克风和麦克风助推滑块的“级别”选项卡,以及一个麦克风静音切换/复选框


我需要通过编程确保麦克风没有静音,但还没有找到读取或设置值所需的API。

您可以使用Caster Tiu从windows mixer中构建的非常有用的库

根据本页上的文档:


使用ValueAsSigned、ValueAsUnsigned和ValueAsBoolean属性,可以通过MixerControl对象访问特定控件,如音量控制器、麦克风增强、低音、高音等,但是它们不是作为标准属性实现的,因为它们不属于所有控件。

有一个WalkTreeBackwardsFromPart示例,演示了如何枚举音频端点并打印其当前音量,您可以修改代码以


Windows应在捕获会话开始时解除软件卷的静音,您的设备是否有硬件卷?

我找不到可以控制这些特定卷级别的API。如果有新答案,请添加新答案,我很乐意接受一个有效的解决方案。

IAudioEndpointVolume界面可能适合您。它具有获取/设置录制或播放设备的静音状态和音量级别的功能


参考:

此项目是为XP构建的。它仅在Vista/Win7上部分工作。