我知道SoundPool是用来处理小的音效,而我也确保了我想要按顺序播放的四个音频片段都足够小。我使用了ogg质量0,这些片段分别是35kb、14kb、21kb和23kb,总共压缩后为92kb。我不知道它们未压缩的大小会有多大,但应该不会很大,对吧?
所以当我按顺序播放4段音频时,前9次(9个序列乘以4个音频)都可以正常播放,但在第9个序列的某个音频时开始出现内存问题。我总是在第9个序列开始时看到错误。
那么如何解决呢?我有几个想法:
1)进一步压缩声音(ogg质量-1,单声道代替立体声)
2)使用SoundPool.load和SoundPool.unload不断卸载和加载音频
3)定期释放并重新创建soundPool实例
还有其他什么方法吗?很尴尬的是,Android API甚至无法处理如此小的音频剪辑。我想知道人们是如何创造带有大量音效的游戏的...
错误信息如下: ERROR/AudioFlinger(35): not enough memory for AudioTrack size=1048640 DEBUG/MemoryDealer(35): AudioTrack (0x25018,size=1048576)
还有其他什么方法吗?很尴尬的是,Android API甚至无法处理如此小的音频剪辑。我想知道人们是如何创造带有大量音效的游戏的...
错误信息如下: ERROR/AudioFlinger(35): not enough memory for AudioTrack size=1048640 DEBUG/MemoryDealer(35): AudioTrack (0x25018,size=1048576)