2013-07-05 6 views
0

Я пытаюсь написать программу, которая захватывает вашу речь, применяет мой эффект на захваченный звук и воспроизводит его сразу. Я пишу это приложение в хранилище Windows в C++. После страдания с MediaCapture я решил использовать WASAPI для этого. Я использую пример из msdn для настройки WASAPI. Как я и ожидал, я столкнулся с проблемой очень скоро. Так что проблема со следующими двумя строками:WASAPI + инициализация приложения для магазина Windows

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. 

у меня нет ни малейшего представления, что это значит. Я был бы признателен за помощь здесь.

ответ

0

Для использования __uuidof() должно быть указано uuid для цели. При компиляции для Windows 8 Store Apps кажется, что MMDeviceEnumerator и IMMDeviceEnumerator не имеют декларации uuid, и вместо этого вы должны использовать пространство имен Windows :: Devices :: Enumeration, чтобы перечислять устройства, а затем использовать IActivateAudioInterfaceAsyncOperation для инициализации и активации аудиоустройства.

Вот ссылка на полностью рабочий пример, который захватывает данные pcm и записывает его в wav-файл. Он использует устройство записи звука по умолчанию, но перечисление доступных устройств и использование любого из них вместо этого является куском пирога.)

WASAPI sample for Windows 8

Смежные вопросы