4

システムに接続されているオーディオ デバイス (マイク コンボとスピーカー コンボ) のリストを表示する 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) からデバイス番号 (整数) を取得するためのマッピングはありますか?

私はたくさんググってイライラしました。

4

1 に答える 1

0

このリンクがあなたの質問に答えると思います。回答のコードは C++ で書かれていますが、かなり簡単に移植できるはずです。

異なる API で同じオーディオ デバイスを関連付けることは可能ですか?

于 2013-03-17T17:19:32.813 に答える