Realtek ALC888 でイベント ヘッドフォン ジャックが挿入/削除されたことを検出する方法は?
SDKまたはライブラリはありますか?
グローバルな質問: Windows XP でこの同じイベントを検出するにはどうすればよいですか? グローバルな答え: ユニバーサル ソリューションは存在しません。しかし、Realtekオーディオは知っています。どのように?
Realtek ALC888 でイベント ヘッドフォン ジャックが挿入/削除されたことを検出する方法は?
SDKまたはライブラリはありますか?
グローバルな質問: Windows XP でこの同じイベントを検出するにはどうすればよいですか? グローバルな答え: ユニバーサル ソリューションは存在しません。しかし、Realtekオーディオは知っています。どのように?
Windows XPには、レガシー機能があります
waveInGetNumDevs(void)
ヘッドフォンジャックが接続されていない限り、0を返すはずです。とにかく、正確な動作は実際のハードウェアドライバによって異なります。参照:http://msdn.microsoft.com/en-us/library/ms713732%28VS.85%29.aspx
これが機能しないサウンドカードもありますが、何かがヘッドフォンジャックに接続されたときに起動するユーティリティがドライバーに付属している場合(つまり、一部のカードにはヘッドフォン/マイク用の共有ジャックがあり、デバイスを挿入すると、差し込んだばかりのデバイスの種類を尋ねます)-メインアプリケーションに何かが差し込まれたかどうかを何らかの形で報告する独自の「検出アプリケーション」を作成するよりも。通常、ドライバのインストールディレクトリにexeファイルがあります。これを、この方法で何かが自動的に接続された場合に起動する「検出アプリケーション」に置き換えることができます。
恐れ入りますが、これら2つの「解決策」(または2つ目の解決策のより良い回避策)以外に、デバイスがヘッドフォンジャックに接続されているかどうかをWindowsXPで検出する方法はありません。ただし、Windows Vista以降では、 IKsJackDescriptionと呼ばれるこれらのイベント用の新しいインターフェイスがあります。
また、WM_DEVICECHANG が発生する場合もあります。