4

我需要在我的 Windows 8 Metro 风格应用程序中执行低级音频捕获。

我想我需要使用 IAudioClient 接口,但是如何获取该接口?

微软表示“客户端通过使用 IMMDevice 接口中描述的技术之一获得对音频端点设备的 IAudioClient 接口的引用。”

http://msdn.microsoft.com/en-us/library/windows/desktop/dd370865(v=vs.85).aspx

但是 Metro 风格的应用程序不支持 IMMDevice 接口。

如何获得 IAudioClient 接口?

4

2 回答 2

1

我从 MSDN 论坛得到了答案:

Platform::String^ id = Windows::Media::Devices::MediaDevice::GetDefaultAudioCaptureId(Windows::Media::Devices::AudioDeviceRole::Console );
Microsoft::WRL::ComPtr<IAudioClient> pAudioClient = NULL;
ActivateAudioInterface( id->Data(), __uuidof( IAudioClient ), (void**)&pAudioClient );

这个 ActivateAudioInterface() 对我来说很神秘——MSDN 库中根本没有对它的引用;搜索它的唯一点击是在论坛中......

于 2012-04-23T21:52:38.433 回答
0

实际上,您应该使用 ActivateAudioInterfaceAsync 而不是 ActivateAudioInterface。请参阅http://msdn.microsoft.com/en-us/library/windows/desktop/jj128298(v=vs.85).aspx

于 2013-04-09T19:35:26.423 回答