带有 Realtek ALC888 的活动耳机插孔 (Windows XP)
Posted
技术标签:
【中文标题】带有 Realtek ALC888 的活动耳机插孔 (Windows XP)【英文标题】:Event headphone jack ( Windows XP ) with Realtek ALC888 【发布时间】:2012-10-27 05:40:23 【问题描述】:如何检测 Realtek ALC888 上插入/移除的事件耳机插孔?
有没有 SDK 或库?
全球问题:如何在 Windows XP 下检测到同样的事件? 全球答案:不存在通用解决方案。但是,瑞昱音响知道。如何?
【问题讨论】:
【参考方案1】:在 Windows XP 上,有一个旧功能
waveInGetNumDevs(void)
除非插入耳机插孔,否则应该返回 0。无论如何,确切的行为取决于实际的硬件驱动程序。另见:http://msdn.microsoft.com/en-us/library/ms713732%28VS.85%29.aspx
有些声卡不起作用,但如果驱动程序附带一个实用程序,该实用程序会在将某些东西插入耳机插孔时启动(例如,有些声卡具有耳机/麦克风的共享插孔,并且如果您插入一个设备,它会询问您刚刚插入的设备类型)——而不是您可以编写自己的“检测应用程序”, 如果有东西插入到你的主应用程序中,它会以某种方式报告(即套接字、管道、共享内存)。通常在驱动程序安装目录中有一个 exe 文件 - 您可以简单地将其替换为“检测应用程序”,如果以这种方式自动插入某些东西,该应用程序就会启动。
恐怕,除了这两种“解决方案”(或第二种更好的解决方法)之外,Windows XP 无法检测设备是否已插入耳机插孔。不过,在 Windows Vista 和更新版本中,这些事件有一个名为 IKsJackDescription 的新界面。
【讨论】:
【参考方案2】:还可以触发 WM_DEVICECHANG。
【讨论】:
以上是关于带有 Realtek ALC888 的活动耳机插孔 (Windows XP)的主要内容,如果未能解决你的问题,请参考以下文章