我在使用 soundpool 类时遇到问题。它是这样的:
在我的游戏应用程序(顺便说一句音乐应用程序)中,我需要同时重现至少 32 个短声音,所以我这样声明我的音池:
private SoundPool sp;
sp = new SoundPool(128, AudioManager.STREAM_MUSIC, 0);
之后,我加载了所有需要的 MP3 声音,大约 80 个声音,每个 55KB。我加载所有声音都没有问题,但速度很慢!好吧,这不是问题。真正的麻烦是当我同时播放大约 20 个声音时,我的日志中有一个错误:
ERROR/AudioFlinger(59): no more track names available
ERROR/AudioTrack(26349): AudioFlinger could not create track, status: -12
ERROR/SoundPool(26349): Error creating AudioTrack
之后,我尝试播放的每个声音都会引发相同的错误,并且无法播放任何声音。甚至没有另一个 Activity / soundpool 的声音。我不知道发生了什么或如何解决它!我应该更改声音文件的格式吗?播放声音后我应该释放内存还是什么?
(我在三星 Galaxy S I9000 上测试,2.3.3 OS 系统。应用程序是 2.1)