Конвертировать между различными волновыми форматами (WAVEFORMATEX)

Я пишу аудио приложение в реальном времени, которое запускает поток в эксклюзивном режиме. Чтобы правильно представить данные на устройстве, оно должно быть в формате, который я не выбрал. Вся моя обработка звука выполняется с помощью сэмплов с плавающей запятой перед отправкой на устройство, и волновой формат устройства не может быть (и, вероятно, не) установлен в WAVE_FORMAT_IEEE_FLOAT — например, это может быть WAVE_FORMAT_EXTENSIBLE или же WAVE_FORMAT_PCM,

Есть ли API, который позволяет легко конвертировать между одним волновым форматом (с плавающей запятой) и другим (формат устройства)?

0

Решение

Используйте поток преобразования Audio Compression Manager (ACM):

Преобразование данных из одного формата в другой

Если вы не можете создать один поток из вашего формата в формат устройства, вам придется создать два потока — один из вашего формата в WAVE_FORMAT_PCMи другой из WAVE_FORMAT_PCM в формат устройства (все потоки / устройства должны поддерживать преобразование в / из PCM).

1

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

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

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