1

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

谢谢!

4

1 回答 1

0

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

于 2012-11-19T16:26:45.633 回答