虽然有很多关于如何使用AVCaptureSession来获取相机数据的教程,但我找不到关于如何正确处理麦克风数据的信息(甚至在苹果的开发网络本身上)。
我已经实现了AVCaptureAudioDataOutputSampleBufferDelegate,我正在调用我的委托,但我不知道我获取的CMSampleBufferRef的内容是如何格式化的。缓冲区的内容是否为离散样本?它的特性是什么?这些属性可以在哪里设置?
可以使用[AVCaptureVideoDataOutput setVideoSettings:]设置视频属性,但没有相应的AVCaptureAudioDataOutput调用(没有setAudioSettings或类似的东西)。
答案 0 :(得分:1)
它们被格式化为LPCM!您可以通过获取AudioStreamBasicDescription来验证这一点:
CMFormatDescriptionRef formatDescription = CMSampleBufferGetFormatDescription(sampleBuffer);
const AudioStreamBasicDescription *streamDescription = CMAudioFormatDescriptionGetStreamBasicDescription(formatDescription);
然后检查流描述的mFormatId。