将Windows 7上的麦克风静音
本文关键字:麦克风 Windows | 更新日期: 2023-09-27 18:28:34
我在Windows7机器上对麦克风静音时遇到问题。但我发现的所有代码都没有运行,或者它没有执行任何已运行的操作。使用C#代码的Windows7机器已经完成了。我只需要一个开/关的解决方案。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)
并且说{"算术运算导致溢出。"}
http://www.computercabal.com/2010/11/mute-microphone-from-c-on-windows.html--这位先生似乎也遇到过类似的问题,他提供了解决方案的源代码。
您可以使用音频切换器Apihttps://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);
}
}
这可能会有所帮助:C#中的Windows Mixer控件
祝你好运:)。
编辑:如果我是对的,它还可以使某些设备静音。