在Windows 7上静音麦克风

时间:2012-03-22 12:08:35

标签: c# windows-7

我在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)发生错误并且说{“算术运算导致溢出。”}

3 个答案:

答案 0 :(得分:2)

http://www.computercabal.com/2010/11/mute-microphone-from-c-on-windows.html - 这位先生似乎有类似的问题,他提供了解决方案的源代码。

答案 1 :(得分:1)

您可以使用Audio Switcher 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);
    }
}

答案 2 :(得分:0)

这可能会有所帮助:Windows Mixer Control in C#

祝你好运:)。

编辑:如果我是对的话,也可以将某些设备静音。