Продолжение знакомства с интерфейсом Player
В предыдущей главе вы узнали, как использовать интерфейс Player для воспроизведения тоновых звуков. Несмотря на то что тоны поддерживаются широким спектром телефонных аппаратов, цифровые звуки и MIDI-музыка переводят аудио мобильных игр на новый уровень. К счастью, интерфейс Player также позволяет без труда воспроизводить эти типы звуков. Но перед тем как приступить непосредственно к изучению методов воспроизведения звуков, давайте снова взглянем на интерфейс Player, побольше узнаем о его работе.
В MIDP 2.0 Media API интерфейс Player выполняет функции пульта дистанционного управления для воспроизведения различных типов звуков. Обычно, воспроизведение звука с использованием интерфейса Player включает следующие шаги:
1. создание проигрывателя с помощью метода Manager.CreatePlayer();
2. вызов метода prefetch(), который инициализирует подкачку звука и минимизирует задержку;
3. вызов метода start(), который запускает воспроизведение;
4. вызов метода stop(), прекращающий воспроизведение при необходимости;
5. вызов метода close(), закрывающего проигрыватель.
Итак, перед вами достаточно ясная картина того, что необходимо выполнить, чтобы воспроизвести звук с помощью интерфейса Player. Однако многое осталось за кадром. Так, проигрыватель имеет пять стадий жизненного цикла: UNREALIZED, REALIZED, PREFETCHED, STARTED и CLOSED. Их важность заключается в том, что при воспроизведении звука проигрыватель постоянно переходит из одного состояния в другое. Точно так же, как вы проводите свою жизнь: спите, гуляете, обедаете, гуляете и так далее, – проигрыватель проходит через свои стадии.
Аккуратное определение состояний проигрывателя поможет обеспечить лучшее управление аудио. Например, если вы разрабатываете игру, в которой необходимо загружать большой файл звука посредством сетевого соединения, полезно будет знать состояние загрузки и готов ли звук к воспроизведению. Ниже приведено пошаговое описание переходов проигрывателя из одного состояния в другое:
1. первое состояние проигрывателя – UNREALIZED;
2. проигрыватель входит в состояние REALIZED, когда в его распоряжении есть все необходимое для получения медиаресурсов;
3. проигрыватель входит в состояние PREFETCHED, когда нужные файлы закачены и готовы к воспроизведению;
4. состояние STERTED наступает при воспроизведении ресурса проигрывателем;
5. проигрыватель возвращается в состояние PREFETCHED по окончании воспроизведения;
6. проигрыватель входит в состояние CLOSED при закрытии.
После того как проигрыватель инициализирован и запущен, большую часть времени он проводит в состояниях PREFETCHED и STARTED, в зависимости от того, воспроизводится ли звук. Чтобы получить текущее состояние проигрывателя, используется метод getState(), который возвращает одну из пяти констант состояния (UNREALIZED, REALIZED, PREFETCHED или CLOSED).
Теперь, когда вы имеете представление о различных состояниях проигрывателя, давайте посмотрим на некоторые важные методы интерфейса Player, рассмотрим их функции:
► realize() – реализует проигрыватель без получения медиаресурсов (обычно нет необходимости в отдельном вызове этого метода);
► prefetch() – получает медиаресурсы, помогает минимизировать задержу (вызывается при инициализации проигрывателя);
► getState() – этот метод возвращает состояние проигрывателя (вызывается в случае, если необходимо точно знать текущее состояние проигрывателя);
► setLoopCount() – метод устанавливает число повторов при воспроизведении звука (должен вызываться перед методом start());
► start() – начинает воспроизведение звука;
► stop() – останавливает воспроизведение;
► getDuration() – возвращает длину звука (в миллисекундах);
► getMediaTime() – возвращает текущее время воспроизводимого ресурса (в миллисекундах);
► setMediaTime() – устанавливает время текущего ресурса (в миллисекундах);
► close() – закрывает проигрыватель.
Сейчас нет необходимости запоминать названия методов и их функции. В последующих разделах вы познакомитесь с ними в контексте реальной программы, в которой будет показано, как воспроизводить звуки, MIDI– и MP3-музыку.
Воспроизведение Wav-звуков в мобильных играх
Благодаря MIDP 2.0 Media API в мобильных играх без труда можно воспроизводить цифровые звуки. Главное, что вы должны решить, – откуда берется звук. Например, он может храниться в JAR-файле или скачиваться через сеть. Очевидно, что удобнее всего получать файл из JAR-архива, поэтому в большинстве игр делается именно так. В следующих разделах речь пойдет о том, как воспроизводить звуки, воспользовавшись каждым из методов.
Читать дальше
Конец ознакомительного отрывка
Купить книгу