У меня есть приложение на Android Market, и я использую классы SoundPool для звуковых эффектов. Я заметил, что из всех частей API Android это, кажется, вызвало у меня больше всего проблем. Например:
HTC Desire имеет проблемы с воспроизведением файлов WAV (это приводит к случайной блокировке). Использование .ogg файлов исправляет это
На Droid, если вы превысили количество каналов в вызове установки init:
mSoundPool = new SoundPool(4, AudioManager.STREAM_MUSIC, 0);
трубка заблокируется. Если вы можете вообразить трудности в отладке этого! На телефоне я не владею. Это потребовало много самоотверженной помощи от моих клиентов. Изменение «4» на «16» устранило проблему. Я не сомневаюсь, что, если 16 звуков воспроизводятся одновременно, он все равно рухнет. К счастью, шансы на это невелики.
- Также получаю случайные сбои на разных устройствах. У меня есть один из моих клиентов, у которого есть ошибки «Переполнение кучи», относящиеся к воспроизведению звуков.
Я изменил свой диспетчер звука, чтобы использовать MediaPlayer. Это, кажется, работает хорошо сейчас. Мне просто интересно, сталкиваются ли другие разработчики с такими проблемами?