Android SoundPool类在我的应用程序中行为怪异

Android SoundPool类在我的应用程序中行为怪异,android,android-mediaplayer,performance,Android,Android Mediaplayer,Performance,我有一首歌在后台使用安卓MediaPlayer连续播放,我说的连续是指它永远循环 我也有25-30短音,我使用SoundPool类以离散的持续时间播放,他们还必须反复播放主歌 每个声音的持续时间为0.5秒,其中一些声音的大小为0.7Mb,而歌曲的平均大小约为0.4Mb 我可以在我开发这个应用程序的设备上顺利完成整个过程,然后我才知道SoundPool在双核手机上播放时有问题。所以我撤回了对他们的支持 最近,我在一台运行2.3.3的旧设备上测试了该应用程序,新的问题是,在最初的4-5个周期内,声音

我有一首歌在后台使用安卓
MediaPlayer
连续播放,我说的连续是指它永远循环

我也有
25-30
短音,我使用
SoundPool
类以离散的持续时间播放,他们还必须反复播放主歌

每个声音的持续时间为
0.5
秒,其中一些声音的大小为
0.7Mb
,而歌曲的平均大小约为
0.4Mb

我可以在我开发这个应用程序的设备上顺利完成整个过程,然后我才知道SoundPool在双核手机上播放时有问题。所以我撤回了对他们的支持

最近,我在一台运行2.3.3的旧设备上测试了该应用程序,新的问题是,在最初的4-5个周期内,声音似乎播放正常,即直到主歌播放4-5次,然后在第6次播放时,声音播放明显延迟,我记录了
SoundPool.play()
的值,发现延迟为(1-2秒),而这个问题只出现在低端手机上,为什么会发生这种情况,我想这个问题是由
声音池
类引起的,根本不是硬件问题,因为我测试它的设备有充足的
RAM
,即
500Mb
和一个像样的
600Mhz
处理器

我真的需要解决这个问题,因为我希望我的应用程序能在大多数设备上运行,目前除了双核手机

此外,我不能使用MediaPlayer播放我的声音,因为我不想增加CPU开销,使我的应用程序更滞后,而且我也不知道我想在手前播放多少声音


任何关于如何解决此问题和减少延迟的线索都是非常受欢迎的。

音频/视频播放通常是有问题的,因为涉及到很多硬件/低级软件因素(可能在单独的芯片上有专门的解码硬件和/或嵌入cpu,所有这些结合软件解码器,在蓝牙、耳机插孔和2个扬声器之间切换,从内核到android系统的巨大软件堆栈,等等)。它可能是Android设备中最脆弱的子系统。很多设备在这方面都有一些小毛病,而且与Mhz/RAM/Dualcore没有直接关系。不幸的是,你不得不与其中一些设备共处:(

你最好的选择是尝试不同的方式来播放/压缩你的音频。比如在5个周期后重新开始播放等