是否可以使用CoreAudio AudioUnit将音频数据编码为MP3或AAC等压缩格式?如果是,哪个AudioUnit(类型/子类型)完成这项工作?我如何配置它(当尝试使用PCM以外的任何东西时,不会得到kAudioUnitErr_FormatNotSupported
错误)?
您可以将音频编码为大多数音频数据类型。Mp3不在其中。
这里是你可以使用的完整列表。编码文件类型
当使用这些文件类型时,你仍然需要创建audiostreambasicdescriptions。我从来没有找到一个全面的列表,但谷歌搜索提供了最常见的,如caf, aac, mp4和wav。
要实际将文件写入磁盘,您将创建ExtAudioFileRef并使用ExtAudioFileWriteAsync在磁盘上创建文件。
你应该不需要使用一个实际的音频单元转换,如果你只是从一个远程回调采样。
我以前用过这个从mp3转换到wav。还有从mp3到wav到aac。(注:我认为你不能从一种压缩格式转换到另一种。必须是从pcm到一个格式)
希望对你有帮助。