Захватывать и управлять звуком микрофона с помощью AVCaptureSession? - PullRequest
5 голосов
/ 07 марта 2011

Хотя существует множество руководств по использованию AVCaptureSession для захвата данных с камеры, я не могу найти информацию (даже о самой сети Apple dev) о том, как правильно обрабатывать данные с микрофона.

Я реализовал AVCaptureAudioDataOutputSampleBufferDelegate, и я получаю звонки своему делегату, но я понятия не имею, как форматируется содержимое CMSampleBufferRef, который я получаю. Является ли содержимое буфера одним дискретным образцом? Каковы его свойства? Где можно установить эти свойства?

Свойства видео могут быть установлены с помощью [AVCaptureVideoDataOutput setVideoSettings:], но нет соответствующего вызова для AVCaptureAudioDataOutput (нет setAudioSettings или чего-либо подобного).

1 Ответ

1 голос
/ 30 ноября 2011

Они отформатированы как LPCM! Вы можете убедиться в этом, получив AudioStreamBasicDescription следующим образом:

CMFormatDescriptionRef formatDescription = CMSampleBufferGetFormatDescription(sampleBuffer);
const AudioStreamBasicDescription *streamDescription = CMAudioFormatDescriptionGetStreamBasicDescription(formatDescription);

и затем проверка mFormatId описания потока.

...