#wave #vfw
#wave #vfw
Вопрос:
Я делаю быстрое решение, используя VFW. На этапе подготовки к приему аудиоданных я прошу VFW предоставить мне формат данных wave по умолчанию для подключенной веб-камеры. Он возвращает мне структуру WAVEFORMATEX, пожалуйста, смотрите рисунок.
Как вы можете видеть, это 1 байт для выборки и 1 канал .. 11025 байт в секунду. Но обратный вызов получает другое количество байт, пожалуйста, смотрите рисунок
И вопрос в том, какова корреляция и зависимость между этими значениями to? Как разделить данные в таком случае, если есть 2 канала?
Ответ №1:
dwBufferLength
это размер буфера, а не количество захваченных байтов. Вас интересует другой участник: dwBytesRecorded
.
В случае стерео WAVEFORMATEX
будет иметь значение 2 в nChannels
, а затем nBlockAlign
, nAvgBytesPerSec
будет скорректировано соответственно. Байты в буферах будут иметь следующую упаковку:
0000: [sample 0, channel 0]
0001: [sample 0, channel 1]
0002: [sample 1, channel 0]
0003: [sample 1, channel 1]
...