使用AVCaptureSession捕获和操作麦克风音频?

时间:2011-03-07 04:09:41

标签: iphone objective-c audio microphone avcapturesession

虽然有很多关于如何使用AVCaptureSession来获取相机数据的教程,但我找不到关于如何正确处理麦克风数据的信息(甚至在苹果的开发网络本身上)。

我已经实现了AVCaptureAudioDataOutputSampleBufferDelegate,我正在调用我的委托,但我不知道我获取的CMSampleBufferRef的内容是如何格式化的。缓冲区的内容是否为离散样本?它的特性是什么?这些属性可以在哪里设置?

可以使用[AVCaptureVideoDataOutput setVideoSettings:]设置视频属性,但没有相应的AVCaptureAudioDataOutput调用(没有setAudioSettings或类似的东西)。

1 个答案:

答案 0 :(得分:1)

它们被格式化为LPCM!您可以通过获取AudioStreamBasicDescription来验证这一点:

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

然后检查流描述的mFormatId。