1

我的主要目标是有一个程序,它允许我使用“滚动锁定”键在 Windows 下静音/取消静音我的麦克风。由于键盘上的滚动锁定灯,这将为我提供一个很好的指标来判断麦克风是否静音。

如何获取有关麦克风状态的信息 - 无论是否静音?我可以调用任何 dll 来实现此目的吗?

谢谢

4

1 回答 1

2

使用 CoreAudioApi。你可以在这里找到 dll 。使用此功能查找您的麦克风:

  private List<MMDevice> gMicrophoneDevices = new List<MMDevice>();//global variable
  private bool findMicrophones()
        {
            MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();
            MMDeviceCollection devices = DevEnum.EnumerateAudioEndPoints(EDataFlow.eCapture, EDeviceState.DEVICE_STATE_ACTIVE);
            for (int i = 0; i < devices.Count; i++)
            {
                MMDevice deviceAt = devices[i];
                if (deviceAt.FriendlyName.ToLower() == "microphone" || deviceAt.FriendlyName.ToLower() == "микрофон")//you can add more languages here
                    gMicrophoneDevices.Add(deviceAt);                
            }
            if (gMicrophoneDevices.Count == 0)
                return false;
            else return true;
        }

找到麦克风设备后,使用它来获取其静音状态:

gMicrophoneDevices[0].AudioEndpointVolume.Mute

如果是真的,那么您的第一个麦克风已静音。

于 2014-02-26T17:05:06.770 回答