Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/157.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ WASAPI&x2B;windows应用商店应用程序初始化_C++_Audio_Microsoft Metro_Wasapi - Fatal编程技术网

C++ WASAPI&x2B;windows应用商店应用程序初始化

C++ WASAPI&x2B;windows应用商店应用程序初始化,c++,audio,microsoft-metro,wasapi,C++,Audio,Microsoft Metro,Wasapi,我正试图编写一个程序来捕获你的演讲,将我的效果应用到捕获的音频上,并立即播放。我将这个应用程序写入C++的Windows商店。在经历了MediaCapture的痛苦之后,我决定使用WASAPI来实现这一点。我正在使用msdn中的一个示例进行设置。正如我预料的那样,我很快就遇到了问题。因此,问题在于以下两行: const CLSID CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator); const IID IID_IMMDeviceEnu

我正试图编写一个程序来捕获你的演讲,将我的效果应用到捕获的音频上,并立即播放。我将这个应用程序写入C++的Windows商店。在经历了MediaCapture的痛苦之后,我决定使用WASAPI来实现这一点。我正在使用msdn中的一个示例进行设置。正如我预料的那样,我很快就遇到了问题。因此,问题在于以下两行:

const CLSID CLSID_MMDeviceEnumerator = __uuidof(MMDeviceEnumerator);
const IID IID_IMMDeviceEnumerator = __uuidof(IMMDeviceEnumerator);
visual studio说:

Error: operand of __uuidof must have a class or enum type for which __declspec(uuid('..')) has been specified.
我不知道这是什么意思。在此我将非常感谢您的帮助。

要能够使用u_uidof(),必须为目标声明uuid。为Windows 8应用商店应用程序编译时,MMDeviceEnumerator和IMMDeviceEnumerator似乎没有任何uuid声明,您应该使用Windows::Devices::Enumeration命名空间枚举设备,然后使用IActivateAudioInterfaceAsyncOperation初始化和激活音频设备

下面是一个完整工作示例的链接,该示例捕获pcm数据并将其写入wav文件。它使用系统的默认音频捕获设备,但列举可用设备并使用其中任何一个都是小菜一碟。:)