如何判断主音量是否静音?

我使用以下内容将计算机上的主音频静音/取消静音。 现在,我正在寻找一种确定静音状态的方法。 在C#中有这么简单的方法吗?

private const int APPCOMMAND_VOLUME_MUTE = 0x80000; private const int WM_APPCOMMAND = 0x319; [DllImport("user32.dll")] public static extern IntPtr SendMessageW(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam); 

嗨,你只是偶然发现了这个老话题,但是我正在努力解决同样的问题。

我用以下方法解决了:

 using System.Runtime.InteropServices; ... [DllImport("user32.dll", CharSet = CharSet.Auto)] static extern IntPtr SendMessage(IntPtr hWnd, UInt32 Msg, IntPtr wParam, IntPtr lParam); private const int APPCOMMAND_VOLUME_MUTE = 0x80000; private const int APPCOMMAND_VOLUME_UP = 0xA0000; private const int APPCOMMAND_VOLUME_DOWN = 0x90000; private const int WM_APPCOMMAND = 0x319; ... // mute (toggle) SendMessage(this.Handle, WM_APPCOMMAND, this.Handle, (IntPtr)APPCOMMAND_VOLUME_MUTE); // unmute SendMessage(this.Handle, WM_APPCOMMAND, this.Handle, (IntPtr)APPCOMMAND_VOLUME_UP); SendMessage(this.Handle, WM_APPCOMMAND, this.Handle, (IntPtr)APPCOMMAND_VOLUME_DOWN); 

静音不会总是静音音频,它是一个切换 – 但如果你确保首先调用“取消静音”,你应该是金色的。

最好的问候Kurt

查看以下教程 。 我从来没有玩过使用C#(或任何其他语言)的混音器,所以我假设他们在P /调用Win32 API中是正确的,并且他们没有重新发明轮子。 您可以下载该示例,我认为方法GetMixer()将执行您想要的操作。

在上面的评论中归功于RRUZ。 请参阅stackoverflow.com/questions/294292。 唯一的问题是您需要兼容模式。