Иллюстрированный самоучитель по программированию мобильных телефонов

Пакет javax.microedition.media

Пакет javax.microedition.media необходим для работы со звуком и содержит четыре основных интерфейса и один класс, на базе которых и происходит воспроизведение звуков в телефоне.

Интерфейс Control

Интерфейс Control – это самый главный интерфейс, с его помощью осуществляется контроль над всеми имеющимися ресурсами, также от этого интерфейса наследуются еще два интерфейса ToneControl и VolumeControl.

Интерфейс Controllable

С помощью интерфейса Controllable можно получить управление над воспроизведением, посредством использования двух методов:

  • Control getControl (String controlType) – определяет тип управления;
  • Control [ ] getControls () – получает управление.

Интерфейс Player

Интерфейс Player наследуется от интерфейса Controllable и необходим для реализации процесса воспроизведения звуковых данных на основе формирования проигрывателей. Проигрыватели создаются методом createPlayer() класса Manager, например:

Player player 1 = Manager.createPlayer();

После создания проигрывателя можно производить воспроизведения звука, для этого необходимо воспользоваться методами интерфейса Player.

Методы интерфейса Player:

  • void addPlayerListener(PlayerListener playerListener) – осуществляет обработку событий от определенного проигрывателя;
  • void close () – закрывает проигрыватель;
  • void deallocate () – освобождает ресурс, занятый проигрывателем;
  • String getContentType () – получает тип звуковых данных воспроизводимых проигрывателем;
  • long getDuration () – получает размер звукового файла;
  • long getMediaTime () – получает время воспроизведения звуковых данных;
  • int getState () – определяет состояние проигрывателя;
  • void removePlayerListener(PlayerListener playerListener) – удаляет установленный обработчик событий;
  • void setLoopCount (int count) – устанавливает цикличное воспроизведение звуковых данных;
  • long setMediaTime(long now) – устанавливает время воспроизведения;
  • void start () – дает команду на воспроизведение;
  • void stop () – останавливает воспроизведение.

Большинство методов направленно на работу со звуковыми данными, позже в разделе 9.3 мы разберем подробнее работу с методами интерфейса Player.

Интерфейс PlayerListener

Интерфейс PlayerListener позволяет осуществлять обработку событий полученных от проигрывателя. Помните в главе 5 мы разбирали работу интерфейса CommandListener? Интерфейс PlayerListener функционирует почти по такой же схеме, но ориентирован на работу с проигрывателем. В составе интерфейса PlayerListener.имеется всего один метод:

  • void playerUpdate (Player player, String event, Object eventData) – обновляет состояние проигрывателя.

С помощью констант интерфейса Player в методе playerUpdate(), нужно задавать тип необходимых событий в параметрах eventData и event:

  • static String CLOSED – уведомляет о закрытии проигрывателя;
  • static String DEVICE_AVAILABLE – уведомляет о доступности проигрывателя;
  • static String DEVICE_UNAVAILABLE – уведомляет о недоступности проигрывателя;
  • static String DURATIONJJPDATED – обновляет состояние;
  • static String END_OF_MEDIA – уведомляет о конце воспроизведения данных проигрывателем;
  • static String ERROR – уведомляет об ошибке;
  • static String STARTED – уведомляет о начале работы проигрывателя;
  • static String STOPPED – уведомляет о конце работы проигрывателя;
  • static String VOLUME_CHANGED – уведомляет о выборе громкости для воспроизведения.

Класс Manager

Класс Manager создает проигрыватель для воспроизведения звуков, а также отслеживает доступные протоколы звуковых данных, с помощью нескольких методов.

  • static Player createPlayer(InputStream stream, String type) – создает проигрыватель для воспроизведения звуковых данных из потока;
  • static Player createPlayer(String locator) – создает проигрыватель для воспроизведения звуковых данных из определенного файла;
  • static String[ ] getSupportedProtocols(String content_type) – возвращает список доступных протоколов для мобильного устройства;
  • static void playTone(int note, int duration, int volume) – воспроизводит различные тональные звуки.
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.