如何解决mp3声音在模拟器上播放,但不在设备音频BeatBox上播放
| 我的端头有一个非常严重的问题: 我正在制作音频同步的BEATBox,同时播放16种不同的声音。 为了实现mp3文件的时间同步,我们放弃了 AVAudioPlayer并包括以下的AUGraph方法: mixerHostAudio.m 和 mixerHostAudio.h 我在Apple的开发人员资源处下载了该软件。 该实现在模拟器上运行良好,但在设备上运行不正常, 加载第四个文件后崩溃... 我们正在将文件加载为kAudioFormatLinearPCM格式。 我们将其更改为:kAudioFormatMPEGLayer3 由于文件全部为.mp3,我们认为这是必需的格式。 APP确实设法加载了资源,但是在startAUGraph上出现了错误 方法。 APP没在设备上崩溃,但没有播放声音,也没有在设备上播放,也没有 在模拟器中。 我们尝试将比特率从32更改为16,这似乎有所帮助。 但仍然没有声音..帮助!解决方法
解决了:
显然没有办法将压缩的音频文件加载到iOS上的AUGraph或AudioBuffer中,必须转换为linearPCM,因此:
当转换为linearPCM时,29秒的.mp3文件(每个500KB)变成5 MB文件。
iPhone 3G为每个应用程序提供大约20 MB的RAM内存,这解释了为什么加载第四个文件(4 * 5 = 20:p)后APP崩溃的原因
理想的解决方案是实现每次仅加载文件的一小部分(例如1秒)的缓冲算法。
当时,这个解决方案让我有些头疼,因此实际解决方案正在为循环加载更短的文件,以使其能够在3G和3GS设备上加载。 iPhone4将加载完整原始循环。
感谢所有的答复。
赫南
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。