2012-10-22 75 views
1

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

谢谢!

回答

0

我已经这样做了使用输入内存缓冲区,避免任何文件,在我的情况下,我开始与AAC音频格式,并使用苹果的API:AudioConverterFillComplexBuffer做硬件解压缩到LPCM。诀窍是你必须定义一个回调函数来提供每个输入数据包。这个api调用在每个数据包的基础上进行格式转换。在我的情况下,我不得不编写代码来解析压缩的AAC数据以识别数据包启动(0xfff),然后使用回调将每个数据包送入api调用。我还使用OpenAL进行音频渲染,这对避免使用输入文件有其自身的挑战。

相关问题