如何使用C#检测何时插入和拔出了音频设备?

最佳答案

最好的方法可能是WMI。您可以订阅WMI事件,以反射(reflect)大多数WMI类的实例的创建/销毁。每个音频设备都有一个 Win32_SoundDevice 实例。

如果要了解特定设备状态的详细信息(扬声器,静音,...),则WMI似乎不包括此设备。

您可能需要使用COM互操作来访问MMDevice API,其中包括枚举“endpoint”设备的功能。这将是一项艰苦的工作,因为似乎没有可以导入的typelib,而是需要编写一些C / C++来提供代理,或者在.NET中手动重新创建所需的COM接口(interface)等。

09-10 01:18
查看更多