C# 中的静音麦克风

Muting Microphone in C#

我目前正在尝试用 C# 编写一个程序,使麦克风静音和取消静音以模拟口吃效果。 我试过使用谷歌搜索,但我只能找到一些已有 10 年历史的条目。 我尝试使用 MediaCommands,然后使用 MicrophoneVolumeMute,但无法正常工作。 提前致谢

有许多用纯 C# 编写的开源项目可以完成这项工作。例如,您可以查看 https://github.com/DanielGilbert/dgMicMute. Unfortunately it's not that easy anymore to globally toggle microphones since Win7. For this reason, the required code is quite substantial. As starting point you can read DgMic.cs.

如果我们考虑使用外部库,事情就会变得容易得多。这是一些适用于 NAudio:

的代码
using var enumerator = new NAudio.CoreAudioApi.MMDeviceEnumerator();
var commDevice = enumerator.GetDefaultAudioEndpoint(DataFlow.Capture, Role.Communications);
commDevice.AudioEndpointVolume.Mute = true; //or false

要完成这项工作,您必须添加对 NAudio NuGet package 的引用。