Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные работы. Мобильные устройства.doc
Скачиваний:
2
Добавлен:
01.05.2019
Размер:
1.8 Mб
Скачать

Обзор mmapi

В профиле MIDP 1.0 отсутствовала возможность работы со звуком, поэтому приходилось полагаться на нестандартные классы, предлагаемые производителями мобильных телефонов. С появлением MIDP 2.0 эта проблема исчезла, поскольку в его состав входит мультимедиа библиотека MMAPI.

MMAPI имеет следующие особенности:

  • Поддерживает генерацию тонов, воспроизведение и запись Time-Based медиа информации. Пакет поддерживает любой time-based аудио или видео контент.

  • Скромные системные требования. MMAPI рассчитан на рабату в жестких условиях мобильных устройств.

  • Безразличие к протоколам и форматам. MMAPI не заточен под конкретный протокол и формат.

  • Разработчики могут ориентироваться на ограниченную часть типов контента.

  • Расширяемость. Новые возможности могут быть добавлены без необходимости переделывать старые функции. Легко добавляются новые форматы и механизмы управления средой.

Механизм обработки мультимедмйной информации

Обработка мультимедмйной информации делится на две части:

  • Обработка протокола: чтение данных из различных источников, например из файлов или сервера потока данных в систему обработки мультимедийной информации.

  • Обработка формата: разбор или декодирование полученных данных; предоставление их в понятном формате устройствам вывода (спикеру или дисплею).

Для облегчения этих операций API предоставляет два типа объектов высокого уровня:

  • DataSource реализует обработку протокола, скрывая подробности чтения данных из источника. Сервисные методы этого объекта дают возможность объекту Player обрабатывать контент.

  • Player получает данные от DataSource, обрабатывает их, переводит в формат, понятный устройствам вывода. Этот объект содержит методы управления воспроизведением.

MMAPI определяет еще один объект Manager. С его помощью ваше приложение может создавать объект Player на основании DataSources, и DataSources на основании InputStreams.

Для создания объекта Player необходимо вызвать метод Manager.createPlayer(String url). Параметр URL определяет протокол и формат. Он имеет вид: протокол:источник.

Приложение может использовать методы объекта Player для управления воспроизведением time-based медиа информацией.

Player может находиться в пяти состояниях: UNREALIZED, REALIZED, PREFETCHED, STARTED и CLOSED. После создания, Player находится в состоянии UNREALIZED. Вызов метода realize() переводит его в состояние REALIZED и инициализирует информацию необходимую player-у для получения медиа ресурсов. Метод prefetch() переводит его в состояние PREFETCHED. На этом этапе формируется соединение с потоком данных и производится закачка всех необходимых файлов. Вызов start() переводит плеер в режим STARTED, с этого момента начинается воспроизведение. Когда обработка данных завершается (достигнут конец потока данных), Player переходит в режим PREFETCHED. Вызов метода close() переводит Player в состояние CLOSED.

Помимо указанных выше методов, Player имеет еще несколько:

  • getState() - возвращает текущее состояние проигрывателя.

  • setLoopCount( int ) - устанавливает число повторов при воспроизведении звука.

  • getDuration() - возвращает длительность звука в миллисекундах.

  • getMediaTime() - возвращает текущее время воспроизведения в миллисекундах.

  • setMediaTime( int) - устанавливает текущее время воспроизведения в миллисекундах.

  • getCountType() - возвращает тип воспроизводимых звуковых данных.

  • dellocate() - освобождает ресурс, занятый проигрывателем.

Player позволяет осуществлять управление обрабатываемыми данными. Для этого используются методы getControl() (для определения типа управления) и getControls() (для получения управления). Например, при обработке MIDI информации вызов getControl() вернет MIDIControl.