Windows OS で再生/キャプチャ デバイスの到着と切断を検出できるようにする機能をアプリに追加したいと考えています。Skype と同様に、デバイスのプラグを抜くと、デバイスが失われたという通知が表示され、別のデバイスを選択するように求められます。
ダイレクトサウンドを使用しています。この問題を解決するには、2 つの方法があると思います。
- 別のスレッドで EnumerateDevices コールバックを呼び出し、変更を手動で検出します。
- 何とか WM_DEVICECHANGE メッセージを処理します。しかし、AFAIK WM_DEVICECHANGE にはいくつかの制限があります。ところで、「スマート」オーディオ カードでは動作しません。これにより、あらゆる種類のデバイスをあらゆるシンクに接続できます。デバイス マネージャーでデバイスを無効にすると、WM_DEVICHANGE が届きます。ヘッドフォンジャックを手動で抜いても、何も起こりません。しかし、私はそのような状況を処理する必要があります。
適切なアプローチをアドバイスしてください。
前もって感謝します。