1

私は、あなたのスピーチをキャプチャして、キャプチャしたオーディオに私の効果を適用し、すぐに再生するプログラムを作成しようとしています。このアプリを C++ で Windows ストアに作成しています。MediaCapture に悩まされた後、WASAPI を使用することにしました。msdn の例を使用してWASAPIをセットアップしています。予想通り、すぐに問題が発生しました。したがって、問題は次の 2 行にあります。

const CLSID CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator);
const IID IID_IMMDeviceEnumerator = __uuidof(IMMDeviceEnumerator);

ビジュアルスタジオは次のように述べています。

Error: operand of __uuidof must have a class or enum type for which __declspec(uuid('..')) has been specified.

私はそれが何を意味するのか分かりません。ここで助けていただければ幸いです。

4

1 に答える 1

0

__uuidof() を使用できるようにするには、ターゲットに対して uuid が宣言されている必要があります。Windows 8 ストア アプリ用にコンパイルする場合、MMDeviceEnumerator と IMMDeviceEnumerator には uuid 宣言がないようです。代わりに、Windows::Devices::Enumeration 名前空間を使用してデバイスを列挙し、IActivateAudioInterfaceAsyncOperation を使用してオーディオ デバイスを初期化およびアクティブ化する必要があります。

これは、pcm データをキャプチャして wav ファイルに書き込む、完全に機能する例へのリンクです。システムのデフォルトのオーディオ キャプチャ デバイスを使用しますが、利用可能なデバイスを列挙し、代わりにそれらのいずれかを使用するのは簡単なことです。:)

Windows 8 の WASAPI サンプル

于 2013-07-08T08:58:53.510 に答える