我一直在尝试播放在didOutputSampleBuffer
委托中作为原始数据接收的音频。什么应该是处理原始数据的正确方法?
答案 0 :(得分:1)
请查看Apple的以下示例代码:AVCaptureTtoAudioUnitOSX
在那里,您可以看到如何正确处理原始音频数据并将其传递给AudioUnit
。
基本原则如下:
获取SampleBuffer
的{{1}}了解格式
首先使用AudioStreamBasicDescription
获取CMFormatDescriptionRef
然后使用CMSampleBufferGetFormatDescription
获取AudioStreamBasicDescription
现在,您可以获得有关采样率,每通道位数,每帧通道数和每个数据包帧数的信息
获取包含实际音频数据的CMAudioFormatDescriptionGetStreamBasicDescription
使用CoreAudio的公共实用程序或检查此mailing list条目以获取正确的方法
该函数称为AudioBufferList
。第三个参数是CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer
,它是您想要的bufferListOut
,并将传递给我们使用,例如AudioUnit或您需要的任何东西。
获取实际原始数据
AudioBufferList
包含AudioBufferList
,其中每个都包含数据
AudioBuffers
这应该让你去。请查看Apple的示例代码以获取更多信息。