9

如何检测 Realtek ALC888 上插入/移除的事件耳机插孔?

是否有任何 SDK 或库?

全球问题:如何在 Windows XP 下检测到同样的事件?全球答案:不存在通用解决方案。但是,瑞昱音响知道。如何?

4

2 回答 2

3

在 Windows XP 上,有一个旧功能

waveInGetNumDevs(void)

除非插入耳机插孔,否则应该返回 0。无论如何,确切的行为取决于实际的硬件驱动程序。另请参阅:http: //msdn.microsoft.com/en-us/library/ms713732%28VS.85%29.aspx

有一些声卡不起作用,但是如果驱动程序附带一个实用程序,该实用程序在将某些东西插入耳机插孔时启动(即,某些卡具有耳机/麦克风的共享插孔,如果您插入设备,它询问您刚刚插入的设备类型)——而不是您可以编写自己的“检测应用程序”,它以某种方式报告(即套接字、管道、共享内存)是否插入了主应用程序。通常在驱动程序安装目录中有一个 exe 文件 - 你可以简单地用你的“检测应用程序”替换它,如果以这种方式自动插入某些东西,它就会启动。

恐怕,除了这两个“解决方案”(或第二个更好的解决方法)之外,Windows XP 无法检测设备是否已插入耳机插孔。不过,在 Windows Vista 和更新版本上,这些事件有一个名为IKsJackDescription的新接口。

于 2012-11-15T10:42:59.543 回答
1

也可能会触发 WM_DEVICECHANG。

于 2012-11-21T15:48:45.580 回答