В каком формате аудиопоток передается до звуковой карты?
Вопрос
Я хочу манипулировать аудиопотоком до того, как он попадет на звуковую карту.Поэтому я хочу использовать SAPO от Microsoft для управления аудиопотоком в звуковом движке (аудиоархитектура Vista).
На самом деле мой основной вопрос заключается в том, в каком формате находится аудиопоток.Не знаю, но думаю, что это формат WAVE или RIFF.Может ли кто-нибудь помочь мне в этом случае?:)
Решение
обычно большинство звуковых карт работают с 16-битными целыми числами со знаком, представляющими линейный звук PCM:[http://en.wikipedia.org/wiki/Linear_pulse_code_modulation] однако это не всегда случай (просто типичный).как правило, если ваши аудио API еще не преобразуют этот «необработанный» звук в представление с плавающей запятой, вам понадобится некоторый код для этого, если только вы не особенно любите выполнять математические операции с целыми числами.
как уже указывал Ларри, многие API будут выполнять преобразование с плавающей запятой за вас и просто передавать буфер чисел с плавающей запятой, соглашение заключается в том, что они представляют собой значения от -1 до 1.
|К<
Другие советы
Судя по всему, формат обсуждается.
Ваш APO сообщает звуковому движку, какие форматы ввода и вывода он поддерживает, движок выдаст ему все, что вы ему скажете (на самом деле это не на 100% точно - это примерно правильно, и вам нужно прочитать документацию APO для получения полной информации).
Фактические аудиоданные будут такими, какие указаны, обычно это 32-битные выборки с плавающей запятой с амплитудой от -1,0 до 1,0.