5

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

我已经实现了 AVCaptureAudioDataOutputSampleBufferDelegate,并且正在接到我的代表的电话,但我不知道我得到的 CMSampleBufferRef 的内容是如何格式化的。缓冲区的内容是一个离散样本吗?它的属性是什么?这些属性可以在哪里设置?

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

4

1 回答 1

1

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

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

然后检查流描述的 mFormatId。

于 2011-11-29T23:21:11.733 回答