我正在编写一个能够录制麦克风音频的应用程序。我的问题是我需要知道用户何时插入插孔并拔出插孔。
我查看了Win32_SoundDevice
WMI课程,在我看来,没有这样的属性我可以检查杰克的状态。
然后我在RegisterEndpointNotificationCallback
找到了IMMDeviceEnumerator
,这似乎做了我需要的但我不知道如何在C#中做到这一点。有谁知道如何使用MMDeviceEnumerator
方法检查音频端口状态?任何帮助高度赞赏。
答案 0 :(得分:1)
您可能需要查看当时的开源NAudio项目。
我浏览了他们的代码,看来他们的IMMDeviceEnumerator
interface有.Net包装。
由于此项目属于Microsoft公共许可证,因此它可能在您的项目中可用。
答案 1 :(得分:0)
使用以下代码查看:
var enumerator = new MMDeviceEnumerator();
var d = enumerator.GetDefaultAudioEndpoint(DataFlow.Render, Role.Multimedia);
Console.WriteLine(d.Properties[new Guid("46d16a2c-5654-41c0-911e-7860d2bce7ee")].Value.ToString());
此属性返回1(已插入)或0(未插入)..
您必须引用NAudio库..