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

时间:2011-12-09 03:11:15

标签: c# winapi windows-7 com volume

Windows 7有一些我无法通过C#应用程序控制的新音频设置。具体来说,在输入(麦克风)属性中,有一个包含Microphone和Microphone Boost滑块的Levels选项卡,以及一个Microphone静音切换/复选框。

我需要以编程方式确保麦克风没有静音 - 但是没有找到必要的API来读取或设置值。

4 个答案:

答案 0 :(得分:1)

我无法找到能够控制这些特定音量级别的API。如果可用,请添加新的答案,我很乐意接受一个有效的解决方案。

答案 1 :(得分:0)

您可以使用来自http://www.codeproject.com/KB/audio-video/AudioLib.aspx?msg=1323850

的Caster Tiu围绕Windows混音器构建的非常有用的库

根据此页面上的文档:

可以使用ValueAsSigned,ValueAsUnsigned和ValueAsBoolean属性通过MixerControl对象访问Fadder,Microphone Boost,bass,treble等特定控件,但它们不是作为标准属性实现的,因为它们不属于所有控件。

答案 2 :(得分:0)

有一个WalkTreeBackwardsFromPart示例,演示如何枚举音频端点并打印出当前音量,您可以将代码修改为unmute the analog mixer via IDeviceTopology

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

答案 3 :(得分:0)

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

参考:http://msdn.microsoft.com/en-us/library/windows/desktop/dd370892(v=vs.85).aspx