可以使用AudioUnit(CoreAudio)将音频编码到AAC或MP3吗?

时间:2011-10-14 01:11:19

标签: ios macos core-audio

是否可以使用CoreAudio AudioUnit将音频数据编码为MP3或AAC等压缩格式?如果是,哪个AudioUnit(类型/子类型)完成工作?如何配置它(在尝试使用除PCM以外的任何其他内容时不会出现kAudioUnitErr_FormatNotSupported错误?)

1 个答案:

答案 0 :(得分:2)

您可以将核心音频编码为大多数音频数据类型。 Mp3不是其中之一。

以下是您可以使用的完整列表。 Encoding file types

使用这些文件类型时,您仍需要创建AudioStreamBasicDescribtions。我从来没有找到一个全面的列表,但谷歌搜索提供适用于最常见的那些,如caf,aac,mp4和wav。

要将文件实际写入磁盘,您需要创建ExtAudioFileRef并使用ExtAudioFileWriteAsync在磁盘上创建文件。

如果您只是从远程回调中获取样本,则不需要使用实际的音频单元进行转换。

之前我用过这个从mp3转换为wav。也从mp3到wav到aac。(注意我不认为你可以从一种压缩格式转换为另一种。它必须是从pcm到格式)

希望有所帮助。