Osx:核心音频:使用AudioToolbox解析原始压缩音频数据(获取PCM)

时间:2012-10-22 17:33:36

标签: macos audio core-audio

我正在使用自己的c ++ http客户端(即mp3,aiff等)下载各种声音文件。现在我想使用Core Audio的 AudioToolbox 解析它们,以获得线性PCM数据,以便用OpenAL进行播放。根据这个文档:https://developer.apple.com/library/mac/#documentation/MusicAudio/Conceptual/CoreAudioOverview/ARoadmaptoCommonTasks/ARoadmaptoCommonTasks.html,应该也可以从内存创建一个音频文件。不幸的是,我在浏览API时没有找到任何方法这样做,那么通常的方法是什么?请不要说我应该先将文件保存到我的硬盘中。

谢谢!

1 个答案:

答案 0 :(得分:0)

我使用输入内存缓冲区完成了这项工作,避免了任何文件,在我的情况下,我开始使用AAC音频格式并使用apple的api:AudioConverterFillComplexBuffer来进行硬件解压缩到LPCM。诀窍是你必须定义一个回调函数来提供每个输入数据包。该api调用基于每个数据包执行格式转换。在我的情况下,我必须编写代码来解析压缩的AAC数据以识别数据包启动(0xfff),然后使用回调将每个数据包反馈到api调用。我也在使用OpenAL进行音频渲染,这有其自身的挑战,以避免使用输入文件。