我正在开发一个 iOS 应用程序,该应用程序必须一次处理多个立体声音频文件(持续时间从几秒到四分钟不等),同时播放多达三个,通过基于多通道混音器的 AUGraph 同步。我的音频文件被压缩——无论是 MP3、AAC 还是 CAF——但是当它们被加载到缓冲区时被转换为 32 位AudioUnitSampleType
格式(我的代码基于 Apple 的iPhoneMultichannelMixerTest)。不用说,有了这么大的缓冲区,应用程序内存很快就会成为一个问题。
Apple 的文档指出,iOS 设备一次可以在硬件中解码一个 MP3/AAC 文件,对于需要在软件中解码的其他文件,建议使用 CAF (IMA4) 格式。在开发用于在播放期间动态加载音频的系统之前,我想知道是否可以将压缩文件直接加载到缓冲区中(从而显着减少内存需求)并让我的 AUGraph 即时转换它们?