【发布时间】:2011-10-14 01:11:18
【问题描述】:
是否可以使用 CoreAudio AudioUnit 将音频数据编码为 MP3 或 AAC 等压缩格式?如果是,哪个 AudioUnit(类型/子类型)可以完成这项工作?我该如何配置它(在尝试使用 PCM 以外的任何东西时不会收到 kAudioUnitErr_FormatNotSupported 错误)?
【问题讨论】:
标签: ios macos core-audio
是否可以使用 CoreAudio AudioUnit 将音频数据编码为 MP3 或 AAC 等压缩格式?如果是,哪个 AudioUnit(类型/子类型)可以完成这项工作?我该如何配置它(在尝试使用 PCM 以外的任何东西时不会收到 kAudioUnitErr_FormatNotSupported 错误)?
【问题讨论】:
标签: ios macos core-audio
您可以将核心音频编码为大多数音频数据类型。 Mp3 不是其中之一。
这里是您可以使用的完整列表。 Encoding file types
使用这些文件类型时,您仍然需要创建 AudioStreamBasicDescriptions。我从未找到它们的完整列表,但谷歌搜索提供了适用于最常见的列表,例如 caf、aac、mp4 和 wav。
要将文件实际写入磁盘,您将创建一个 ExtAudioFileRef 并使用 ExtAudioFileWriteAsync 在磁盘上创建文件。
如果您只是从 remoteio 回调中获取样本,则不需要使用实际的音频单元进行转换。
我以前用它从 mp3 转换为 wav。也从 mp3 到 wav 到 aac。(注意我不认为你可以从一种压缩格式转换为另一种。它必须从 pcm 到一种格式)
希望对您有所帮助。
【讨论】: