Miguel de Cervantes y Saavedra - Don Quijote de la Mancha - Ebook:
HTML+ZIP- TXT - TXT+ZIP

Wikipedia for Schools (ES) - Static Wikipedia (ES) 2006
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
Mobile Media API — Википедия

Mobile Media API

Материал из Википедии — свободной энциклопедии

Mobile Media API (MMAPI, JSR-135) — набор классов для J2ME, который позволяет проигрывать звук и видео; часть MIDP 2.0.

Содержание

[править] Назначение

  • Единообразный способ проигрывания всех видов звука и видео, независимо от того, находятся ли они в файле или загружаются через интернет.
  • Задержки, возникающие в результате загрузки файлов и приведения телефона в нужное состояние, находятся под контролем программиста.

[править] Поддерживаемые форматы

MIDP 2.0 требует, чтобы телефон играл тоновые звуки и звуки в формате WAV. Проигрывание остальных форматов (MIDI, MP3, AMR, 3GP, MPEG-4) необязательно.

[править] Важнейшие классы

Классы MMAPI находятся в пакете javax.microedition.media.

Класс Manager служит для создания плееров. Все плееры имеют интерфейс Player. В составе MMAPI есть и другие классы и интерфейсы, которые служат для управления громкостью, реакции на события и т.д.

[править] Пять состояний плеера

Плеер имеет пять состояний:

  • UNREALIZED (только что созданный);
  • REALIZED (загруженный);
  • PREFETCHED (готовый к проигрыванию);
  • STARTED (в состоянии проигрывания);
  • CLOSED (плеер больше не нужен).

Только что созданный функцией Manager.createPlayer() плеер находится в состоянии UNREALIZED.

Функция realize() загружает все ресурсы, нужные для проигрывания, за исключением «ценных и дефицитных» (в частности, читает файл или связывается с сервером). Плеер переводится из состояния UNREALIZED в состояние REALIZED. Вызов функции realize() может занимать некоторое время.

Функция prefetch() загружает «ценные и дефицитные ресурсы»; плеер переходит из состояния UNREALIZED или REALIZED в состояние PREFETCHED. Вызов функции prefetch() также может занимать некоторое время. В большинстве реализаций MMAPI в состоянии PREFETCHED может находиться только один плеер.

Функция start() запускает проигрывание, переводя плеер из состояний UNREALIZED, REALIZED или PREFETCHED в состояние STARTED. Если плеер был в состоянии PREFETCHED, функция start() гарантированно вызывается мгновенно. Если плеер перемотан на конец, функция start() начинает проигрывание сначала.

Функция close() вызывается, когда плеер больше не нужен. Плеер переходит в состояние CLOSED, и в этом состоянии его можен уничтожить сборщик мусора.

Чтобы остановить плеер, вызывается функция stop(). При этом он переходит из состояния STARTED в состояние PREFETCHED (и никуда не перематывается).

Чтобы освободить дефицитные ресурсы, вызывается функция deallocate(). При этом он переходит из состояния STARTED или PREFETCHED в состояние REALIZED.

Функция deallocate() имеет ещё одну важную роль. Если перевод плеера в состояние REALIZED не завершился (то есть, файл не загружен до конца), загрузка файла прерывается, и плеер остаётся в состоянии UNREALIZED.

В состояние UNREALIZED пути нет.

[править] Интерфейс Control

Пустой интерфейс Control служит базой для конструирования различных интерфейсов управления проигрыванием. Несколько наследников Control определено в пакете javax.microedition.media.control: ToneControl, VolumeControl, MIDIControl и т.д.

[править] Простейший пример кода

import javax.microedition.media.*;

Player p = Manager.createPlayer("http://www.fishy.com/my.mp3", "audio/mp3");
p.start();

[править] Телефоны, поддерживающие MMAPI

MMAPI является частью MIDP 2.0. То есть, любой телефон, поддерживающий MIDP 2.0, обязан поддерживать MMAPI. Вот (не исчерпывающий) список телефонов с MIDP 1.0, которые подерживают MMAPI.

Nokia

Sony Ericsson

  • Все модели с поддержкой J2ME.

Siemens

  • Все модели с экраном 101×80 (M55, S55 и др.) имеют собственный набор классов для проигрывания мультимедиа, похожий на MMAPI.

[править] Проблемы

MMAPI плохо подходит для реализации звуковых эффектов в мобильных играх, так как у каждого телефона свои тонкости. Одни позволяют вводить все звуки в состояние PREFETCHED и проигрывать их в любой момент; в других для этого приходится прибегать к различным ухищрениям. Бывают и менее очевидные тонкости. Бывает, что между остановкой и повторным проигрыванием плеера должно пройти некоторое время, на некоторых отнюдь не устаревших моделях это время составляет 1—2 с!

Некоторые «тонкости» в действительности являются прямыми нарушениями стандарта.

[править] Наиболее распространённые нарушения стандарта

По стандарту, если плеер находится в состоянии UNREALIZED, команда start() сначала переведёт его в REALIZED, затем в PREFETCHED, затем в STARTED. Некоторые телефоны не допускают таких «перепрыгиваний»; требуется явно задавать realize(), prefetch(), start().

Некоторые телефоны загружают файлы отложенно, что также противоречит стандарту. Предположим, плеер создан и переведён в состояние PREFETCHED. По стандарту, команда start() должна вызываться мгновенно. Но некоторые реализации MMAPI проводят загрузку только по команде start() (и лишь повторные start() действительно вызываются мгновенно).

По стандарту, если проигрывание закончилось, то после повторной команды start() плеер должен начать проигрывание сначала. На некоторых телефонах такой плеер ничего не играет, пока не будет явно перемотан назад функцией setMediaTime().

[править] Ссылки

 
Static Wikipedia 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Sub-domains

CDRoms - Magnatune - Librivox - Liber Liber - Encyclopaedia Britannica - Project Gutenberg - Wikipedia 2008 - Wikipedia 2007 - Wikipedia 2006 -

Other Domains

https://www.classicistranieri.it - https://www.ebooksgratis.com - https://www.gutenbergaustralia.com - https://www.englishwikipedia.com - https://www.wikipediazim.com - https://www.wikisourcezim.com - https://www.projectgutenberg.net - https://www.projectgutenberg.es - https://www.radioascolto.com - https://www.debitoformtivo.it - https://www.wikipediaforschools.org - https://www.projectgutenbergzim.com