在 Windows 7 上静音麦克风
Posted
技术标签:
【中文标题】在 Windows 7 上静音麦克风【英文标题】:Mute microphone on Windows 7 【发布时间】:2012-03-22 12:08:35 【问题描述】:我在将 Windows 7 机器上的麦克风静音时遇到问题。但是我发现的所有代码都没有运行,或者运行时它没有做任何事情。是否已为使用 C# 代码的 Windows 7 机器完成。我只需要一个开/关解决方案。 DDL 文件也适用于 Win x64bit。但我认为我在另一个地方造成了错误。
mixers.Recording.Lines.GetMixerFirstLineByComponentType(
MIXERLINE_COMPONENTTYPE.SRC_MICROPHONE).Volume = 0;
if (!mediaElement1.CheckAccess()) mediaElement1.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate mediaElement1.Play(); );
if (MessageBox.Show("Incoming Call from: " + string.Format(e.RemoteParticipant), "Video Chat Call", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
mixers.Recording.Lines.GetMixerFirstLineByComponentType(
MIXERLINE_COMPONENTTYPE.SRC_MICROPHONE).Volume = 1;
if (!mediaElement1.CheckAccess()) mediaElement1.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Normal, (Action)delegate mediaElement1.Stop(); );
_currentConversation.StartVideo();
'
如果if (MessageBox.Show("Incoming Call from: " + string.Format(e.RemoteParticipant), "Video Chat Call", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
发生错误并显示“算术运算导致溢出。”
【问题讨论】:
什么是e.RemoteParticipant
?如果您将该 string.Format 放在它自己的行上并将其保存到变量中,该错误是否会发生在该行上?实际上我没有看到只接受一个参数的string.Format
的重载,那是扩展方法吗?
可能重复***.com/a/3046715/285594
【参考方案1】:
http://www.computercabal.com/2010/11/mute-microphone-from-c-on-windows.html -- 这位先生似乎遇到了类似的问题,他提供了解决方案的源代码。
【讨论】:
【参考方案2】:您可以使用音频切换器 API https://www.nuget.org/packages/Audioswitcher.AudioApi.CoreAudio/4.0.0-alpha5
代码很简单:
private async void btnMute_ButtonClick(object sender, EventArgs e)
var audioController = new CoreAudioController();
var devices = await audioController.GetDevicesAsync(DeviceType.Capture, DeviceState.Active);
var device = devices.FirstOrDefault(x => x.IsDefaultDevice);
if(device != null)
await device.SetMuteAsync(!device.IsMuted);
【讨论】:
不错。看起来SetMuteAsync
应该是MuteAsync
,或者你可以使用ToggleMute
【参考方案3】:
这可能会有所帮助:Windows Mixer Control in C#
祝你好运:)。
编辑:如果我是对的,它还可以使某些设备静音。
【讨论】:
似乎对我来说更大的这个错误算术运算导致溢出。 :(以上是关于在 Windows 7 上静音麦克风的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3:如何在使用 AVFoundation 录制视频期间将麦克风静音/取消静音