захват звука в приложениях метро - PullRequest
4 голосов
/ 27 марта 2012

Мне нужно выполнить низкоуровневый захват звука в моем приложении в стиле Metro для Windows 8.

Я думаю, мне нужно использовать интерфейс IAudioClient, но как получить этот интерфейс?

Microsoft говорит: «Клиент получает ссылку на интерфейс IAudioClient для конечного аудиоустройства, используя один из методов, описанных в интерфейсе IMMDevice ..»

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

, но интерфейс IMMDevice неподдерживается для приложений в стиле Metro.

Как получить интерфейс IAudioClient?

Ответы [ 2 ]

1 голос
/ 24 апреля 2012

Я получил ответ на форумах 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 на него вообще нет ссылок;единственные попадания при поиске - на форумах ...

0 голосов
/ 09 апреля 2013

На самом деле, вы должны использовать ActivateAudioInterfaceAsync вместо ActivateAudioInterface. Смотри http://msdn.microsoft.com/en-us/library/windows/desktop/jj128298(v=vs.85).aspx

...