在Xcode 3.2.5中,我想从单个UIButton按顺序(50+)播放多个音频文件。我尝试了几个代码,但它们泄漏了内存。有什么建议?我还在学习,所以请包含标题和implimentation文件代码。我提前感谢。
答案 0 :(得分:1)
使用音频队列服务(AudioToolbox / AudioQueue.h)中的接口。为要播放的每个声音创建一个音频队列对象。然后使用AudioQueueEnqueueBufferWithParameters函数指定每个音频队列中第一个音频缓冲区的同时开始时间。
以下限制适用于iPhone OS中的同步声音,具体取决于音频数据格式:
AAC,MP3和ALAC(Apple Lossless)音频:您可以同时播放多种AAC,MP3和ALAC格式的声音;播放这些格式的多个声音将需要CPU资源进行解码。
线性PCM和IMA / ADPCM(IMA4音频):您可以同时播放多个线性PCM或IMA4格式声音而无需CPU资源问题。
取自play multiple sounds simultaneously
答案 1 :(得分:0)
这只是概念性的,但是(a)创建一个你想要播放的声音名称数组(这可以在运行时),以正确的顺序,然后(b)写一个函数,其中每个soundHandler类型的对象检查以查看它在数组中的位置;如果不是最后它构造一个soundPlayer,加载声音,播放然后调用数组中的下一个soundHandler。 (如果它是最后一个它只是构造/加载/播放,并且可能通知父母它已经完成了。)每个soundHandler(我只是这样做,你必须编写它)然后可以在完成时解除它自己。
如果遇到延迟/加载问题,你总是可以让每个soundHandler在数组中调用n + 2,当然然后检查它是倒数第二个而不是结束。
这是你的想法吗?