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将加载完整的原始循环。
感谢所有的答复。
埃尔南