首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以将压缩的音频文件直接加载到缓冲区中,而不进行转换?

是否可以将压缩的音频文件直接加载到缓冲区中,而不进行转换?
EN

Stack Overflow用户
提问于 2011-09-02 01:06:22
回答 1查看 679关注 0票数 0

我正在开发一个iOS应用程序,必须处理几个立体声音频文件(从几秒钟到四分钟的持续时间)一次,播放多达三个同时回放,通过多通道混音器为基础的AUGraph同步。我的音频文件是压缩的--无论是MP3、AAC还是CAF格式--但当它们加载到buffers中时,会被转换成32位的AudioUnitSampleType格式(我的代码是基于苹果的iPhoneMultichannelMixerTest)。不用说,有了如此大的缓冲区,应用程序内存很快就会成为一个问题。

苹果公司的文档指出,iOS设备一次可以在硬件中解码一个MP3/AAC文件,对于需要在软件中解码的其他文件,建议使用CAF (IMA4)格式。在我开发一个在播放过程中动态加载音频的系统之前,我想知道是否可以直接将压缩文件加载到缓冲区中(从而显着减少内存需求),并让我的AUGraph动态转换它们?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-27 22:03:26

为了回答我自己的问题,如果所有人需要的是精确的音频回放-同步,而不是使用音频单元处理的自定义处理,那么一定要看看AVFoundation的AVPlayerAVAssetAVComposition类。

虽然这种方法看起来更适合视频回放,但它只使用音频资源就能很好地工作。这些类处理所有媒体资产(包括CAF、AAC和MP3)的加载和缓冲,在此过程中使用极少量的内存,并且可以使用AVURLAssetPreferPreciseDurationAndTimingKey进行紧密同步。此外,它还具有有用的回调方法,可以将这些回调方法设置为在回放期间的特定时间调用(用于更新UI等)。最后,当它在Mac (10.7+)上可用时,它是通用Cocoa开发的一个很好的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7273839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档