如何将AVAudioCompressedBuffer写入iOS中的AAC文件?

时间:2018-04-23 23:43:25

标签: ios swift avaudioengine avaudiofile avaudiopcmbuffer

我已成功将AVAudioEMBine的AVAudioPCMBuffers转换为具有AAC格式的AVAudioCompressedBuffers。现在我尝试将这些缓冲区写入文件,但不知道该怎么做。 AVAudioFile只接受AVAudioPCMBuffers。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

最简单的方法是在转换为压缩之前写入AVAudioFile,或转换回PCM缓冲区并写入AVAudioFile。

如果不能选择简单的方法,我相信您使用Audio File Services时会遇到困难。您可以使用AVAudioCompressedBuffer的AudioBufferList属性的数据指针作为AudioFileWriteBytes的inBuffer参数。与C API进行交互可能会变得非常难看,但它是将直接数据写入音频文件的唯一方法,而不是手动操作。

let data  = myAVAudioBufferlist.audioBufferList[0].mBuffers.mData