我正试图从我的C#控制台应用程序中静音PC扬声器。我已经尝试了建议on this site的代码,它不会影响我机器上的音量。我需要代码在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?
答案 0 :(得分:2)
答案 1 :(得分:0)
您无法将PC扬声器静音。它是一个基本的设备,没有混音器等。它出来的是一个恒定的音量。
您在示例中显示的是控制声卡混音器的代码,这是一个完全不同的设备。
答案 2 :(得分:0)
您可以对AudioSwitcher库使用AudioSwitcher.AudioApi.CoreAudio
扩展名。只需使用Package Manager Console将其安装为Nuget包:
Install-Package AudioSwitcher.AudioApi.CoreAudio
它有Mute
,ToggleMute
和Volume
属性等方法,因此您可以设置所需的值。
以下是一个例子:
using (var audio = new CoreAudioController())
{
audio.DefaultPlaybackDevice.Volume = 50;
}