将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)并且说{"算术运算导致溢出。"}

将Windows 7上的麦克风静音

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控件

祝你好运:)。

编辑:如果我是对的,它还可以使某些设备静音。