Ios 如何在'didOutputSampleBuffer'中使用'AVCapturesession'播放音频缓冲区`
我一直在尝试播放在Ios 如何在'didOutputSampleBuffer'中使用'AVCapturesession'播放音频缓冲区`,ios,avfoundation,playback,avcapturesession,Ios,Avfoundation,Playback,Avcapturesession,我一直在尝试播放在didOutputSampleBufferdelegate中作为原始数据接收的音频。处理原始数据的正确方法应该是什么?查看以下来自Apple的示例代码: 在这里,您可以看到如何正确处理原始音频数据并将其传递到音频单元 基本原则如下: 获取SampleBuffer的AudioStreamBasicDescription了解格式信息 首先使用CMSampleBufferGetFormatDescription 然后使用cAudioFormatDescriptionGetStrea
didOutputSampleBuffer
delegate中作为原始数据接收的音频。处理原始数据的正确方法应该是什么?查看以下来自Apple的示例代码:
在这里,您可以看到如何正确处理原始音频数据并将其传递到音频单元
基本原则如下:
SampleBuffer
的AudioStreamBasicDescription
了解格式信息
首先使用CMSampleBufferGetFormatDescription
然后使用
cAudioFormatDescriptionGetStreamBasicDescription获取AudioStreamBasicDescription
现在,您可以获得有关采样率、每通道比特数、每帧通道数和每包帧数的信息
AudioBufferList
使用CoreAudio的公用事业或检查此条目以了解正确的操作方法
该函数称为
CMSampleBufferGetAudioBufferListWithRetainedBlockBuffer
。第三个参数是bufferListOut
,它是您想要的AudioBufferList
,将传递给您使用,例如AudioUnit或您需要的任何东西AudioBufferList
包含AudioBuffers
,每个都包含数据
struct AudioBuffer {
UInt32 mNumberChannels;
UInt32 mDataByteSize;
void *mData;
};