WASAPI + Windows应用商店的应用程序初始化(WASAPI + windows stor

2019-10-18 07:49发布

我试图写一个程序,它捕获你的演讲上捕获的音频应用效果我并立即播放。 我在C ++编写这个程序,Windows应用商店。 与MediaCapture痛苦后,我决定使用WASAPI做到这一点。 我使用从MSDN的例子建立WASAPI 。 正如我所料我遇到了一个问题很快。 所以,问题是以下两行:

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.

我没有任何想法,这是什么意思。 我将在这里得到一些帮助。

Answer 1:

为了能够使用__uuidof()一个UUID必须声明为目标。 当编译为Windows 8商店应用程序似乎MMDeviceEnumerator和IMMDeviceEnumerator没有任何UUID声明,您应该改为使用Windows ::设备::枚举命名枚举设备,然后用IActivateAudioInterfaceAsyncOperation初始化并激活音频设备。

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

WASAPI样品为Windows 8



文章来源: WASAPI + windows store app initialization