システムに接続されているオーディオ デバイス (マイク コンボとスピーカー コンボ) のリストを表示する Windows フォーム (C#) アプリケーションがあります。ユーザーは、自分の入力デバイス (マイク) と出力デバイス (スピーカー) の設定を選択して、話したり聞いたりすることができます。別のプラットフォーム レベルのコード (C プログラムで記述) があります。これは、デバイス番号が再生され、適切なデバイスをリッスンすることを期待しています。これは整数値です (Wave in および Wave out id と呼びます)。このデバイス番号の値は、Windows のオーディオ (I/O) デバイスの優先度が変更されると変化します。ここで、Windows フォーム UI (C#) は、ドロップダウンの選択 (MIC / スピーカー) に基づいて、デバイス番号をプラットフォーム コード (C 言語) に送信する必要があります。
以下のアプローチ (DirectXSound / Microsoft Expression Encoder / Wmi query) を使用して、デバイス (デバイス名、およびデバイス ID (GUID) をドロップダウンにリストすることができました) これらは、一意の DeviceId (GUID) を提供します。しかし、対応するものを取得できませんでした選択した入力および出力オーディオ デバイスのデバイス番号 (整数値)。
デバイス ID (GUID) からデバイス番号 (整数) を取得するためのマッピングはありますか?
私はたくさんググってイライラしました。