我知道 SoundPool 旨在处理类似声音的小型 fx,并且我确保我想按某个顺序一个一个播放的 4 个声音剪辑足够小。
我使用了 ogg 质量 0,剪辑为 35kb、14kb、21kb 和 23kb,总共 92kb 的压缩音频。我不知道如何估计未压缩的大小,但应该不会很多,对吧?
因此,当我按顺序播放 4 个声音时,前 9 次效果很好(9 个序列 x 4 个声音),但开始导致其中一个声音的 9 序列出现记忆问题。当我开始看到错误时,它总是序列 9。
处理它的最佳方法是什么?我有几个想法:
1)进一步压缩声音(ogg质量-1和单声道而不是立体声)
2) 使用 SoundPool.load 和 SoundPool.unload 不断卸载和加载声音
3) 不时释放和重新创建 soundPool 实例
还有什么我可以做的吗?尴尬的是android api不能处理这么小的剪辑。我想知道人们如何制作具有大量音效的游戏...
错误看起来像这样:
错误/AudioFlinger(35): AudioTrack 内存不足 size=1048640 DEBUG/MemoryDealer(35): AudioTrack (0x25018,size=1048576)