Jump to content

API мобильных медиа Java

Mobile Media API ( MMAPI ) — это спецификация API для Java ME платформы CDC и устройств CLDC , таких как мобильные телефоны . В зависимости от того, как они реализованы, API позволяют приложениям воспроизводить и записывать звуки и видео, а также захватывать неподвижные изображения. MMAPI был разработан в рамках процесса сообщества Java как JSR 135.

Концепции программирования

[ редактировать ]

Мультимедийный Java API основан на четырех основных типах классов в javax.microedition.media пакет Manager, Player, PlayerListener и различные виды Control.

Программисты Java ME, желающие использовать JSR 135, сначала должны использовать статические методы Manager сорт . Хотя существуют и другие методы, такие как playTone, основной используемый метод createPlayer. Для этого требуется либо URI , либо InputStreamи тип MIME . В большинстве случаев используются URI. Общие используемые протоколы URI включают:

  • файл:
  • ресурс: (который может извлечь файл из JAR мидлета, но зависит от реализации)
  • http:
  • ртсп:
  • захват: (используется для записи аудио или видео)

Тип MIME является необязательным и выводится из передаваемых данных, если он не указан.

The createPlayer метод возвращает реализацию Player интерфейс (даже если вы используете URI протокола capture :). Здесь есть основные методы, применимые ко всем проигрывателям, такие как запуск и остановка мультимедиа, а также запрос на его зацикливание. Вы также можете setPlayerListener к объекту, реализующему PlayerListener интерфейс, который будет получать различные события, связанные с клипом (запуск, остановка, завершение мультимедиа и т. д.)

Player классы также имеют getControl метод, который возвращает реализацию определенного Control. А Control обрабатывает любые дополнительные API, которые не применимы ко всем типам мультимедиа. Любой данный Player может или не может быть в состоянии предоставить реализацию любого данного Control.

(Как правило, Control возвращенный на самом деле Player сам по себе, но это не гарантируется.)

Набор элементов управления, реализуемых Player не ограничен; однако некоторые стандартные из них определены в javax.microedition.media.control пакет от JSR:

Стандартные элементы управления MMAPI
Интерфейс управления Описание
Управление позиционированием кадра Элемент управления видеоданными, обеспечивающий доступ к отдельным кадрам.
Графический интерфейс управления Элемент управления для данных, требующих отображения, например видео.
Метаданныеконтроля Используется для определения информации метаданных, хранящейся в медиапотоке, такой как название, авторские права, автор и т. д.
MIDIControl Полнофункциональный элемент управления, обеспечивающий доступ к MIDI-плееру устройства.
Управление высотой тона Используется для управления высотой звука (частотой) аудиоданных.
СкоростьКонтроль Используется для управления скоростью воспроизведения проигрывателя.
RecordControl Позволяет управлять записью данных с устройства захвата, например видео с камеры или звука с диктофона.
СтопTimeControl Элемент управления, который позволяет вам установить заданное время, когда вы хотите, чтобы проигрыватель прекратил воспроизведение.
ТемпоКонтроль Подобно параметру «RateControl», этот элемент управления позволяет изменять темп (скорость) воспроизведения аудиоплеера, обычно MIDI-плеера.
ТонКонтроль Полнофункциональный элемент управления, позволяющий воспроизводить монотонные последовательности тонов.
ВидеоКонтроль Расширяет GUIControl и управляет отображением видео.
Регулятор громкости Простейший элемент управления, позволяющий регулировать громкость звука в Player.

(Другие могут быть определены в JSR 234 ( Расширенные мультимедийные дополнения ).

Подмножество JSR 135 определено в JSR 118 ( MIDP 2.0).

Жизненный цикл игрока

[ редактировать ]

Независимо от используемого протокола или типа носителя, Player проходит через одни и те же дискретные состояния в течение своего жизненного цикла. Эти состояния перечислены в таблице ниже.

Состояния жизненного цикла экземпляра Player
Состояние Описание
Нереализованный Исходное состояние при создании игрока. В этом состоянии игроку не хватает информации для приобретения необходимых ресурсов для обработки мультимедиа.
Осуществленный Игрок переходит в состояние «Реализовано», как только он получил необходимую информацию для приобретения ресурсов. В этом состоянии вполне вероятно, что большая часть ресурсов уже приобретена для функционирования. Однако на этом этапе некоторые ресурсы могут быть не получены, особенно если существуют системные зависимости, например аудио- или видеодрайвер, к которому необходимо получить монопольный доступ.
Предварительно загружено Игрок переходит в состояние «Предварительная выборка» после того, как все ресурсы были получены, включая дефицитные и зависящие от системы ресурсы. Находясь в состоянии Prefetched, Player имеет все необходимое для выполнения своих задач.
Началось Проигрыватель в состоянии «Запущен» указывает, что содержимое, связанное с проигрывателем, обрабатывается.
Закрыто Игрок переходит в закрытое состояние в конце своего жизненного цикла. Плеер в закрытом состоянии нельзя использовать повторно.

Реализации

[ редактировать ]

Как и в большинстве спецификаций Java ME, реализации различаются, несмотря на все усилия авторов спецификаций по обеспечению согласованности. Две очевидные области различий заключаются в поддерживаемых элементах управления и, прежде всего, в допустимых типах URI. Более неясны вопросы о том, ли смешивание поддерживается ; Многие игры хотели бы воспроизводить музыкальную дорожку в формате MIDI и накладывать PCM поверх нее звуковые эффекты .

Еще один источник крайних различий — производительность. Например, если запрашивается HTTP- клип, в какой момент он загружается? Спецификация признает это, предоставляя два Player методы, которые можно вызвать перед началом игры: realize и prefetch. В зависимости от реализации они могут выполнить часть работы по переводу клипа в воспроизводимое состояние, что ускоряет фактическое воспроизведение клипа, когда это необходимо. Некоторые реализации достаточно сложны, чтобы фактически транслировать клип по запросу во время его воспроизведения.

ОС Symbian содержит очень полную реализацию JSR 135, но даже она сильно зависит от базовых мультимедийных возможностей устройства, и некоторые производители устройств могут предпочесть не раскрывать наиболее малоизвестные части Java ME, такие как запись.

Согласованность реализации обеспечивается за счет принудительного прохождения всеми реализациями пакета совместимости технологий Java (TCK). Это гарантирует, что проверяется каждая поддерживаемая схема URI, тип MIME и элемент управления, но не проверяется каждая перестановка этих необязательных частей.

Пример кода

[ редактировать ]
package org.wikipedia;

import javax.microedition.midlet.*;
import javax.microedition.media.*;

public class SimplePlayer extends MIDlet {
     protected void destroyApp(boolean arg0) throws MIDletStateChangeException {}

     protected void pauseApp() {}

     protected void startApp() throws MIDletStateChangeException {
          try {
               String url = "http://upload.wikimedia.org/wikipedia/commons/a/a0/Bass_sample.mid";
               Player player = Manager.createPlayer(url);
               player.start();
          } catch (Exception e) {
               e.printStackTrace();
          }
     }
}

См. также

[ редактировать ]

Библиография

[ редактировать ]
  • Гоял, Викрам (1 мая 2006 г.). Pro Java ME MMAPI: API мобильных мультимедиа для Java Micro Edition (1-е изд.). Апресс . п. 250. ИСБН  1-59059-639-0 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 4074318e587127196e1bf69e1e968f5a__1698351780
URL1:https://arc.ask3.ru/arc/aa/40/5a/4074318e587127196e1bf69e1e968f5a.html
Заголовок, (Title) документа по адресу, URL1:
Java Mobile Media API - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)