У меня проблемы с классом soundpool. Вот оно:
В моем приложении для игры (музыкальное приложение btw) мне нужно воспроизвести как минимум 32 коротких звука одновременно, поэтому я объявляю свой звуковой пул следующим образом:
private SoundPool sp;
sp = new SoundPool(128, AudioManager.STREAM_MUSIC, 0);
После этого я загружаю все необходимые звуки MP3, около 80 звуков по 55 КБ каждый. У меня нет проблем, загружающих все звуки, но медленно! Ну, это не проблема. Настоящая проблема заключается в том, что одновременно воспроизвожу около 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. Я понятия не имею, что происходит или как это исправить! Должен ли я изменить формат звуковых файлов? Должен ли я освобождать память или что-то после воспроизведения звука?
(Я тестирую систему Samsung Galaxy S I9000, 2.3.3, приложение 2.1)