从代码中静音系统

我正试图从我的C#控制台应用程序中静音PC扬声器。 我已经尝试了本网站上建议的代码,但它不会影响我的机器上的音量。 我需要代码在Win7上工作,我认为代码只适用于XP。 我也试过这个:

[DllImport("winmm.dll", SetLastError = true, CallingConvention = CallingConvention.Winapi)] public static extern int waveOutSetVolume(IntPtr uDeviceID, int dwVolume); waveOutSetVolume(IntPtr.Zero, 0); 

但是当调用waveOutSetVolume方法时,系统不会静音,也不会抛出任何错误。 有没有办法在Win7中使用C#静音PC?

我相信这就是你要找的东西。 这已经用Windows 7进行了测试,而且这个问题在之前被问过 。 这可能会帮助您获得所需的信息。

您无法将PC扬声器静音。 它是一个基本的设备,没有混音器等。它出来的是一个恒定的音量。

您在示例中显示的是控制声卡混音器的代码,这是一个完全不同的设备。

您可以为AudioSwitcher库使用AudioSwitcher.AudioApi.CoreAudio扩展。 只需使用Package Manager控制台将其安装为Nuget包:

Install-Package AudioSwitcher.AudioApi.CoreAudio

它有一个方法,如MuteToggleMuteVolume属性,因此您可以设置所需的值。

这是一个例子:

 using (var audio = new CoreAudioController()) { audio.DefaultPlaybackDevice.Volume = 50; }