WASAPI+windows商店应用程序初始化

WASAPI + windows store app initialization

本文关键字:初始化 应用程序 WASAPI+windows      更新时间:2023-10-16

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

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.

我不知道这是什么意思。我很感激这里的帮助。

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

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

适用于Windows 8 的WASAPI示例