Я выпустил свое первое приложение для Android две недели назад (MMO под названием Agent Syndicate), и все работало хорошо, кроме звуков и музыки!
Используя стандартные файлы MP3, созданные в Sony Sound Forge Pro 10 со скоростью 128 кбит / с, я сразу же получил сообщения от многих пользователей, жалующихся на проблемы Force Close на самых разнообразных телефонах, в основном на Android 2.1 и 2.2. Я выпустил новую версию, в которой все звуки отключены, и жалобы прекратились. Однако мне бы очень хотелось иметь звуки, так что это далеко от идеала.
У меня нет доступа к ресурсам для тестирования игры на чем-либо, кроме моего личного телефона и эмулятора (где все работает безупречно), но очевидно, что для многих игроков существует серьезная проблема!
Разве я не должен использовать MP3? Существует ли универсальный метод, который лучше всего работает на всех телефонах для простого воспроизведения простых звуковых файлов?
Это то, что я использую для запуска звуковых эффектов:
final MediaPlayer player = MediaPlayer.create(GlobalState.Instance, resId);
player.setOnCompletionListener(new MediaPlayer.OnCompletionListener()
{
public void onCompletion(MediaPlayer mp)
{
mp.release();
}
});
player.setVolume(0.5f, 0.5f);
player.start();
Изначально я вызывал player.prepare () перед player.start (), но продолжал получать IllegalStateExceptions для некоторых звуковых файлов. Некоторая информация очень сбивает с толку, когда именно вызывать эти методы и что означает исключение. Удаление player.prepare () позволило мне работать в эмуляторе и на моем локальном устройстве разработчика в 100% случаев.