MP3声音在模拟器上播放,但不是在设备(audioBeatBox)

我有一个非常严重的问题:

Im制作一个audio同步的BEATBOX,同时播放16种不同的声音。

为了实现我们在AVAudioPlayer上放弃的MP3文件的TIME-SYNC,并且包含了AUGraph方法:

MixerHostAudio.m和MixerHostAudio.h

我从苹果公司的开发者资源中下载。

该实施工作正常的模拟器,但不是在设备上,加载第四个文件后,CRASHED …

我们将文件加载为kAudioFormatLinearPCM格式。

我们将其更改为:kAudioFormatMPEGLayer3

我们认为这将是所需的格式。

APP设法加载资源,但startAUGraph方法出现错误。

APP没有在设备上崩溃,但它没有声音,也没有在设备,也没有在模拟器。

我们尝试改变位率从32到16,它似乎有帮助..但没有SOund仍然..帮助!

解决了:

显然没有办法将压缩audio文件加载到iOS的AUGraph或AudioBuffer,那么必须转换为linearPCM,因此:

当转换为linearPCM时,每个500KB的29秒.mp3文件变成5MB文件。

iPhone 3G允许每个应用程序大约20 MB的RAM内存,这就解释了为什么加载第四个文件(4 * 5 = 20:p)后应用程序崩溃了,

理想的解决scheme是实现缓冲algorithm,每次只加载一部分文件(例如1秒)。

这个解决scheme当时有点头痛,因此Actual Solution正在为Loop加载更短的文件,使其能够加载3G和3GS设备。 iPhone4将加载完整的原始循环。

感谢所有的答复。

埃尔南