MMAPI (JSR 135) (использованные в MIDP1.0) и Player
классов MIDP2.0 поддерживает воспроизведение стандартного MIDI Формат и адаптируемые многоскоростные широкополосные (AMR) файлы.
Большинство телефонов с поддержкой J2ME в настоящее время также поддерживают воспроизведение файлов MP3 и WAV.
Типичный способ сделать звук для игры, это либо
- использовать MIDI файл (ы) для файлов музыки и AMR для звуковых эффектов, как играть в то же время, или
- использование MIDI-файл (ы) для музыкальных и звуковых эффектов, где только один может воспроизводиться одновременно.
Вначале телефоны обычно могут обрабатывать только один объект Player за раз. В результате вы должны были выбрать пользователя, хотите ли он музыку или звуковые эффекты. Позже, 2 одновременных объекта Player
стали возможны, но только если они обрабатывали 2 разных формата. Вы не могли (и все еще не могли) воспроизводить два MIDI-файла одновременно.
Даже сегодня существует очень мало телефонов, которые поддерживают более двух одновременных объектов Player
.
Многие телефоны также поддерживают блестящий формат мобильного музыкального файла (XMF/mXMF), но только некоторые из них делают это правильно. XMF состоит в основном из файла MIDI + звукового шрифта. Это означает, что вы можете предоставить свои инструменты для вашего MIDI-файла. Во-первых, это означает, что ваша музыка будет (наконец) звучать одинаково на всех устройствах. Еще одно интересное для этого было предоставление звукового шрифта, содержащего несколько звуковых эффектов, и у этого есть нечто похожее на SoundPool, которое вы можете иметь с Android.
Я провел обширное тестирование в формате XMF и, к сожалению, обнаружил, что формат XMF плохо поддерживается. Только устройства Symbian, похоже, хорошо его поддерживают. Телефоны с поддержкой Sony Ericsson очень малы и ограничены при воспроизведении XMF (будут воспроизводиться только файлы XMF, содержащие звуковой шрифт менее 30 КБ), и даже тогда он иногда просто сбой). И другие бренды, кажется, не поддерживают его вообще, так что, к сожалению, я должен рекомендовать вам избежать формата. Как музыкант, меня это очень раздражало, потому что это действительно могло дать платформе J2ME некоторую удивительность в отношении звука.
В прошлом были эксперименты по воспроизведению модулей (файлы MOD/XM/S3M/IT). Я не буду вдаваться в подробности, но просто скажу, что это не путь. Практически никакие телефоны не могут справиться с этим.
На новых телефонах с поддержкой J2ME вы можете уйти с использованием MP3 для музыки в наши дни. Но, конечно, это занимает память. Поэтому для поддержки как можно большего количества устройств наилучшей практикой является использование MIDI для музыки и AMR-файлов для звуковых эффектов. Вы можете, например,сначала создайте свою музыку Player
, а затем в блок try/catch загрузите звуковой эффект. Если он терпит неудачу, он будет равен нулю. Таким образом, вы проверяете, является ли объект звукового эффекта нулевым до начала воспроизведения.
Далее следуют различные советы для получения звука для воспроизведения как можно большего количества устройств. Я написал несколько советов о том, что здесь:
http://www.indiegamemusic.com/help.php?id=1
IndieGameMusic.com также содержит несколько MIDI-файлы, оптимизированные для платформы J2ME. Удалили ненужные данные, сохраняя полифонию до минимума. Некоторые треки даже доступны в нескольких форматах, таких как MIDI для J2ME, XM для Android/iPhone, MP3/OGG для других, поэтому разработчики могут поддерживать несколько платформ, имея в своей игре один и тот же трек.
Кто-нибудь действительно использует телефон в эти дни, основанный на J2ME? – marko
Да, они по-прежнему составляют около 45% всех используемых телефонов .... –