Инициализация приложения WASAPI + windows store

Я пытаюсь написать программу, которая фиксирует вашу речь, применяет мой эффект к захваченному аудио и немедленно воспроизводит его. Я пишу это приложение в магазине Windows на C ++. После страданий с 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.

Я понятия не имею, что это значит. Я был бы признателен за помощь здесь.

1

Решение

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

Вот ссылка на полностью рабочий пример, который собирает данные PCM и записывает их в WAV-файл. Он использует системное устройство захвата звука по умолчанию, но перечисление доступных устройств и использование любого из них — это просто пирог. 🙂

Образец WASAPI для Windows 8

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]