我的主要目标是有一个程序,它允许我使用“滚动锁定”键在 Windows 下静音/取消静音我的麦克风。由于键盘上的滚动锁定灯,这将为我提供一个很好的指标来判断麦克风是否静音。
如何获取有关麦克风状态的信息 - 无论是否静音?我可以调用任何 dll 来实现此目的吗?
谢谢
我的主要目标是有一个程序,它允许我使用“滚动锁定”键在 Windows 下静音/取消静音我的麦克风。由于键盘上的滚动锁定灯,这将为我提供一个很好的指标来判断麦克风是否静音。
如何获取有关麦克风状态的信息 - 无论是否静音?我可以调用任何 dll 来实现此目的吗?
谢谢
使用 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
如果是真的,那么您的第一个麦克风已静音。