使用AVCaptureAudioDataOutput时,CMSampleBuffer中存储的数据是什么?它通过委托(delegate)方法–captureOutput:didOutputSampleBuffer:fromConnection:
传递CMSampleBuffers,但是CMSampleBuffer里面有什么? PCM还是压缩?采样率, channel 数等是什么?如何将其用于从设备流式传输音频?
几个小时的谷歌搜索并没有帮助我。
提前致谢
最佳答案
看起来您可以通过以下方式获取ASBD:
sampleBuffer->
CMSampleBufferGetFormatDescription ->
CMAudioFormatDescriptionGetStreamBasicDescription
然后ASBD将详细说明帧大小(如果已压缩,字节顺序等)。
为了证明这一点(不进行错误检查)并获得采样率:
CMSampleBufferRef cmSampleBuffer = ...;
CMFormatDescriptionRef formatDescription =
CMSampleBufferGetFormatDescription(cmSampleBuffer);
const AudioStreamBasicDescription* const asbd =
CMAudioFormatDescriptionGetStreamBasicDescription(formatDescription);
double sampleRate = asbd->mSampleRate;
关于ios - 音频CMSampleBuffer格式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8049999/