Проблемы переполнения размера кучи со звуковыми клипами - PullRequest
4 голосов
/ 22 февраля 2010

Я создаю приложение для Android, которое включает в себя несколько коротких звуковых клипов. В настоящее время я использую SoundPool для загрузки своих аудиоклипов, как только 2-е действие начинается с действия меню. Мне кажется, что проблема в том, что, как только начинается это вторичное действие, загрузка звуковых клипов вызывает многократное переполнение размера кучи, а затем через некоторое время действие фактически загружается (эмулятор никогда не выдает ошибку или принудительное завершение). Поможет ли мне использование MediaPlayer и не допустит ли переполнения размера кучи?

Кроме того, в данный момент действие меню запускает второе действие в ожидании результата (используя функцию startActivityForResult()). Означает ли это, что действие меню удерживается в памяти, а также загружается второе действие в память? Если да, могу ли я помочь с проблемами с памятью, вызвав finish() в меню активности после запуска 2-го (затем перезапустите меню, когда пользователь захочет вернуться в меню, или это вызовет целый новый набор вопросы?)

1 Ответ

5 голосов
/ 28 января 2011

Да, Soundpool сохранит все звуки в памяти. Вероятно, вам понадобится всего один экземпляр медиаплеера см. Здесь Вы должны сделать это, и ваши проблемы с памятью должны исчезнуть без каких-либо крайних мер.

...