我有一首歌在后台使用Android MediaPlayer连续播放,我的意思是它永远循环。
我也有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开销和使我的应用程序更滞后,而且我也不知道我想要播放多少声音之前手。
任何关于如何解决这个问题和减少延迟的线索,都是非常受欢迎的。
发布于 2012-04-25 02:55:42
音频/视频播放通常是有问题的,因为涉及到很多硬件/底层软件因素(可能在单独的芯片上有专门的解码硬件和/或嵌入到cpu中,所有这些都与软件解码器结合在一起,在蓝牙、耳机插孔和2个扬声器之间切换,从内核到android系统的巨大软件堆栈,等等)。它可能是Android设备中最脆弱的子系统。许多设备在这一领域有较小的怪癖,它与Mhz / RAM / Dualcore没有直接关系。不幸的是,你不得不忍受其中的一些:
你最好的办法是尝试不同的方式播放/压缩你的音频。5个循环后重启播放等
https://stackoverflow.com/questions/10303312
复制相似问题