Предотвращение пропуска или задержки при добавлении музыки в игру для Android - PullRequest
3 голосов
/ 23 декабря 2010

Я недавно добавил простую зацикленную фоновую музыку в свою игру для Android. Он использует Canvas для рисования на экране, поэтому я очень осторожен с оптимизацией производительности. Я добавил музыку, используя стандарт MediaPlayer, который, кажется, самый распространенный и самый простой способ обработки музыки. К сожалению, у меня иногда возникают проблемы с пропуском музыки, и, что еще хуже, иногда из-за значительной задержки в игре.

Мой единственный телефон для тестирования - это Droid Eris, довольно старый телефон, поэтому я подозреваю, что это не будет проблемой на новых телефонах с Android, но я бы хотел, чтобы моя игра игралась на всех устройствах Android. Что я могу сделать, чтобы добавить музыку, сохраняя при этом разумную производительность?

Это код, который я добавил:

// in setup() method of game thread
mediaPlayer = MediaPlayer.create(context, R.raw.rl_theme);
mediaPlayer.setLooping(true);
mediaPlayer.start();
// in method called when the player looses
mediaPlayer.stop();
mediaPlayer.release();

Ответы [ 2 ]

0 голосов
/ 28 декабря 2010

Похоже, что вы ничего не можете сделать.Да, добавление музыки замедляет работу некоторых приложений для Android, но на новых телефонах это не является серьезной проблемой.Я изменил формат аудиофайлов с OGG на MP4, чтобы исправить то, что кажется ошибкой в ​​Android MediaPlayer (все еще смотрит на это, но медиа-сервер зависал на OGG и прекрасно работает с MP4) и производительностькажется, стало лучше.Я не уверен, если это связано, однако.

0 голосов
/ 23 декабря 2010

У меня никогда не было этой проблемы, поэтому я не уверен, но я думаю, SoundPool - это то, что вы ищете.

http://developer.android.com/reference/android/media/SoundPool.html

...