是否可以使用CoreAudio AudioUnit将音频数据编码为MP3或AAC等压缩格式?如果是,哪个AudioUnit(类型/子类型)完成工作?如何配置它(在尝试使用除PCM以外的任何其他内容时不会出现kAudioUnitErr_FormatNotSupported
错误?)
答案 0 :(得分:2)
您可以将核心音频编码为大多数音频数据类型。 Mp3不是其中之一。
以下是您可以使用的完整列表。 Encoding file types
使用这些文件类型时,您仍需要创建AudioStreamBasicDescribtions。我从来没有找到一个全面的列表,但谷歌搜索提供适用于最常见的那些,如caf,aac,mp4和wav。
要将文件实际写入磁盘,您需要创建ExtAudioFileRef并使用ExtAudioFileWriteAsync在磁盘上创建文件。
如果您只是从远程回调中获取样本,则不需要使用实际的音频单元进行转换。
之前我用过这个从mp3转换为wav。也从mp3到wav到aac。(注意我不认为你可以从一种压缩格式转换为另一种。它必须是从pcm到格式)
希望有所帮助。