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

标签 ios macos core-audio

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

最佳答案

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

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

使用这些文件类型时,您仍然需要创建 AudioStreamBasicDescriptions。我从未找到它们的完整列表,但谷歌搜索提供了适用于最常见的列表,例如 caf、aac、mp4 和 wav。

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

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

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

希望对您有所帮助。

关于ios - 可以使用 AudioUnit (CoreAudio) 将音频编码为 AAC 或 MP3 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7762130/

相关文章:

macos - 如何为 Mac App Store 中的应用列表设置背景图片?

ios - 以编程方式读取 Xcode 项目的build设置

ios - 我必须手动删除 KVO 中的观察者吗

iphone - 无法在用户不可交互的 UIWebView 中激活链接

ios - 无法正确反转 AVAsset 音频。唯一的结果是白噪声

objective-c - AudioStreamBasicDescription 中是否需要 mBytesPerFrame?

iphone - 使用音频队列播放和渲染流

ios - 将字符串条目从 Swift iOS 中的 UITextField 保存到 plist

c - 有效的 C 代码在 Swift 项目中不起作用

macos - 如何运行 julia-lang 文件 - Mac OS X