0

マイクとスピーカーの両方からオーディオを個別にキャプチャしたい。それらをどのように区別できますか?Wave API (WaveInOpen() など) を使用して、どちらか一方をキャプチャできます。

waveInGetNumDevs() および waveInGetDevCaps()/waveoutGetDevCaps() を使用してデバイスを列挙すると、特定のエンドポイント デバイス (マイクやスピーカーなど) に関連する情報がないように見えます。次のアダプター デバイスのみが表示されます。

HD 読み取りオーディオ入力
HD 読み取りオーディオ出力
ウェブカメラ ...

4

1 に答える 1

0

私は実際にはWindows APIの知識がないので、私の答えはおそらく最善ではなく、もっと良い方法があるかもしれません.

    HRESULT hr = CoInitialize(NULL);
    IMMDeviceEnumerator *pEnum = NULL;
    hr = CoCreateInstance(__uuidof(MMDeviceEnumerator), NULL, CLSCTX_ALL, __uuidof(IMMDeviceEnumerator), (void**)&pEnum);
    if(SUCCEEDED(hr))
    {
      IMMDeviceCollection *pDevices;
      // Enumerate the output devices.
      hr = pEnum->EnumAudioEndpoints(eAll, DEVICE_STATE_ACTIVE, &pDevices);
      // You can choose between eAll, eCapture or eRender
    }

これにより、入力 (キャプチャ) と出力 (レンダリング) を区別することができます。(それはあなたが望んでいたものですよね?)

コードはこの記事から引用しています。正しい API 呼び出しとライブラリを調べることができます。さらに詳しい情報が得られる場合もあります。

お役に立てば幸いです。

于 2011-12-17T14:43:37.920 に答える