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



是否可以使用CoreAudio AudioUnit将音频数据编码为MP3或AAC等压缩格式?如果是,哪个AudioUnit(类型/子类型)完成这项工作?我如何配置它(当尝试使用PCM以外的任何东西时,不会得到kAudioUnitErr_FormatNotSupported错误)?

您可以将音频编码为大多数音频数据类型。Mp3不在其中。

这里是你可以使用的完整列表。编码文件类型

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

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

你应该不需要使用一个实际的音频单元转换,如果你只是从一个远程回调采样。

我以前用过这个从mp3转换到wav。还有从mp3到wav到aac。(注:我认为你不能从一种压缩格式转换到另一种。必须是从pcm到一个格式)

希望对你有帮助。

最新更新