2012-04-24 29 views
0

我有一首歌在连续播放,使用Android MediaPlayer连续播放,我的意思是它永远循环播放。Android SoundPool类在我的应用程序中表现怪异

我也有25-30短暂的声音,我在离散的持续时间使用SoundPool类,并且他们也必须一次又一次地播放与主歌曲。

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

我能够在我制作这个应用程序的设备上顺利地完成这件事,然后我开始知道SoundPool在双核手机上的问题。所以我撤回了对他们的支持。

最近,我在运行2.3.3的旧设备上测试了应用程序,新问题是,听起来似乎在第4-5周期内正常播放,即直到主歌曲播放4-5次,然后在第6次时间,在播放声音有明显的延迟,我记录了SoundPool.play()的值,发现延迟是〜(1-2秒),而这个问题只在低端手机上出现,为什么会发生这种情况,我猜想问题是由SoundPool类造成的,并且完全不是硬件问题,因为我测试过的设备有充足的RAM,即500Mb和合适的600Mhz处理器。

我真的需要解决这个问题,因为我希望我的应用可以在大多数设备上运行,除了双核手机外。

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

任何线索如何解决这个问题,并减少滞后,是最受欢迎的。

回答

1

音频/视频回放通常是有问题的,因为涉及到很多硬件/低级软件因素(可能存在专用解码硬件在单独的芯片上和/或嵌入到CPU中,并且所有这些与软件解码器,在蓝牙,耳机插孔和2个扬声器之间切换,从内核到Android系统的巨大软件堆栈等)。它可能是Android设备中最脆弱的子系统。许多设备在该区域具有较小的怪癖,并且不直接与Mhz/RAM/Dualcore相关。不幸的是,你必须与他们中的一些生活:(

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

相关问题