Java Mobile Media API - Java Mobile Media API

The Mobile Media API (MMAPI) болып табылады API үшін сипаттама Java ME платформа CDC және CLDC сияқты құрылғылар Ұялы телефондар. Іске асырылу түріне байланысты API қолданбаларға дыбыстар мен бейнелерді ойнатуға және жазуға, суреттерді түсіруге мүмкіндік береді. MMAPI шеңберінде әзірленді Java қауымдастық процесі JSR 135 ретінде

Бағдарламалау тұжырымдамалары

Мультимедиялық Java API оқулықтардың төрт негізгі типіне негізделген javax.microedition.media пакет - Менеджер, Ойыншы, PlayerListener және әр түрлі түрлері Бақылау.

Java ME бағдарламашылары JSR 135-ті қолданғысы келеді Менеджер сынып. Сияқты басқа әдістер бар болса да playTone, қолданылатын негізгі әдіс болып табылады createPlayer. Бұл а URI немесе ан InputStreamжәне а MIME түрі. Көптеген жағдайларда URI қолданылады. Пайдаланылатын жалпы URI хаттамаларына мыналар жатады:

  • файл:
  • ресурс: (ол файлды MIDlet-тің JAR ішінен шығаруы мүмкін, бірақ іске асыруға байланысты)
  • http:
  • rtsp:
  • түсіру: (аудио немесе бейне жазу үшін қолданылады)

MIME түрі қосымша болып табылады және жеткізілмеген жағдайда жіберілген деректер бойынша анықталады.

The createPlayer әдісі жүзеге асыруды қайтарады Ойыншы интерфейс (тіпті егер сіз түсіру: протокол URI). Мұнда барлық ойыншыларға қолданылатын негізгі әдістер бар, мысалы, бұқаралық ақпарат құралдарын бастау және тоқтату және оны іске қосуды сұрау. Сіз сондай-ақ аласыз setPlayerListener іске асыратын объектіге PlayerListener интерфейс, ол клипке қатысты түрлі оқиғаларды алады (бастау, тоқтату, медианы әрлеу және т.б.)

Ойыншы сыныптарда а getControl нақты іске асыруды қайтаратын әдіс Бақылау. A Бақылау барлық медиа түрлеріне сәйкес келмейтін кез-келген қосымша API-мен жұмыс істейді. Кез келген Ойыншы қандай да бір іске асыруды қамтамасыз ете алады немесе мүмкін емес Бақылау.

(Әдетте Бақылау қайтарылған шын мәнінде Ойыншы өзі, бірақ бұл жағдайға кепілдік берілмейді.)

Жүзеге асырылатын басқару жиынтығы Ойыншы шектеулі емес; дегенмен кейбір стандартты javax.microedition.media.control JSR пакеті:

Стандартты MMAPI басқару элементтері
Басқару интерфейсіСипаттама
FramePositioningControlЖеке кадрларға қол жеткізуге мүмкіндік беретін бейне деректерін басқару.
GUIControlБейне сияқты дисплейді қажет ететін деректерді басқару.
MetaDataControlАмедия ағынында сақталған метамәліметтер туралы ақпаратты анықтау үшін қолданылады, мысалы тақырып, авторлық құқық, автор және т.б.
MIDIControlҚұрылғының MIDI ойнатқышына қол жеткізуге мүмкіндік беретін толық функционалды басқару.
PitchControlАудио деректердің биіктігін (жиілігін) басқару үшін қолданылады.
RateControlОйнатқыштың ойнату жылдамдығын басқару үшін қолданылады.
RecordControlКамерадағы видео немесе дыбыс жазғыштан алынған дыбыс сияқты түсіру құрылғысынан деректерді жазуды басқаруға мүмкіндік береді.
StopTimeControlОйнатқыштың ойнауын тоқтатқан кезде алдын-ала орнатылған уақытты орнатуға мүмкіндік беретін басқару элементі.
TempoControlRateControl сияқты, бұл басқару сізге MIDI ойнатқышы үшін аудио ойнатқыштың ойнату қарқынын (жылдамдығын) өзгертуге мүмкіндік береді.
ToneControlМонотонды тон реңктерін ойнатуға мүмкіндік беретін толық функционалды басқару.
VideoControlGUIControl кеңейтеді және бейнені көрсетуді басқарады.
VolumeControlА дыбысының көлемін басқаруға мүмкіндік беретін қарапайым басқару элементі Ойыншы.

(Басқалары JSR 234-те анықталуы мүмкін (Жетілдірілген мультимедиялық қосымшалар ).

JSR 135 ішкі жиыны JSR 118-де анықталған (MIDP 2.0).

Ойыншының өмірлік циклі

Қатысқан протоколға немесе медиа түріне қарамастан Ойыншы өзінің өмірлік циклі кезінде бірдей дискретті күйлер арқылы қозғалады. Бұл күйлер төмендегі кестеде келтірілген

Ойыншы данасының өмірлік цикл күйлері
МемлекетСипаттама
Жүзеге асырылмағанОйыншы құрылған кездегі бастапқы күй. Бұл жағдайда ойыншыда бұқаралық ақпарат құралдарын өңдеуге қажетті ресурстарды алу үшін ақпарат жеткіліксіз.
Іске асырылдыОйыншы ресурстарды сатып алу үшін қажетті ақпаратты алғаннан кейін нақты күйге көшеді. Бұл жағдайда ресурстардың көп бөлігі жұмыс жасау үшін сатып алынған болуы мүмкін. Алайда, кейбір ресурстар бұл сәтте алынбаған болуы мүмкін, әсіресе жүйеге тәуелділіктер болған жағдайда, мысалы, эксклюзивті қол жетімділік қажет аудио немесе видео драйверінде.
Алдын ала алындыОйыншы барлық ресурстар, соның ішінде тапшы және жүйеге тәуелді ресурстар сатып алынғаннан кейін алдын ала алынған күйге өтеді. Алдын ала алынған күйінде, ойнатқышта өз міндеттерін орындау үшін барлық қажеттіліктер бар.
БасталдыБасталған күйдегі ойнатқыш Ойнатқышпен байланысты мазмұнның өңделіп жатқанын көрсетеді.
ЖабықОйыншы өмірлік циклінің соңында жабық күйге ауысады. Жабық күйдегі ойнатқышты қайтадан қолдануға болмайды.

Іске асыру

Java ME сипаттамаларының көпшілігінде сияқты, сәйкестікті қамтамасыз ету үшін спецификация авторларының барлық күш-жігеріне қарамастан, бағдарламалар әр түрлі болады. Айырмашылықтардың екі айқын бағыты - басқару элементтерінде және бірінші кезекте қолайлы URI типтерінде. Неғұрлым түсініксіз аймақтар араластыру қолдау көрсетіледі; көптеген ойындар MIDI музыкалық трегі мен қабатын ойнағысы келеді PCM жоғарғы жағында дыбыстық эффекттер.

Төтенше дисперсияның тағы бір көзі - өнімділікте. Мысалы, егер HTTP клип сұралады, клип қай уақытта жүктеледі? Техникалық сипаттама мұны екі ұсыну арқылы біледі Ойыншы алдын-ала ойнауға болатын әдістер: түсіну және алдын ала алу. Орындалуына байланысты, олар клипті ойнатылатын күйге келтірудің кейбір жұмыстарын орындай алады, осылайша клип қажет болғанда ойнатуды тездетеді. Кейбір бағдарламалар клипті сұрау бойынша оны ойнату кезінде шынымен трансляциялау үшін жеткілікті күрделі.

Symbian ОЖ JSR 135-тің толық орындалуын қамтиды, бірақ бұл құрылғының негізгі мультимедиялық мүмкіндіктеріне өте тәуелді, ал кейбір құрылғы өндірушілер Java ME-нің жазба сияқты түсініксіз бөліктерін көрсетпеуді таңдай алады.

Жүзеге асырудың дәйектілігі барлық іске асыруларды Java-дан өтуге мәжбүр ету арқылы қамтамасыз етіледі Технологиялық үйлесімділік жиынтығы (TCK). Бұл әр қолданыстағы URI схемасының, MIME типінің және Бақылаудың тексерілуін қамтамасыз етеді, бірақ бұл қосымша бөліктердің әр ауысуын тексермейді.

Код мысалы

пакет org.wikipedia;импорт javax.microedition.midlet. *;импорт javax.microedition.media. *;қоғамдық сынып SimplePlayer ұзарады MIDlet {     қорғалған жарамсыз жою App(логикалық арг0) лақтырады MIDletStateChangeException {}     қорғалған жарамсыз пауза қолданбасы() {}     қорғалған жарамсыз startApp() лақтырады MIDletStateChangeException {          тырысу {               Жол url = «http://upload.wikimedia.org/wikipedia/commons/a/a0/Bass_sample.mid»;               Ойыншы ойыншы = Менеджер.createPlayer(url);               ойыншы.бастау();          } аулау (Ерекше жағдай e) {               e.printStackTrace();          }     }}

Сондай-ақ қараңыз

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

  • Гоял, Викрам (2006 ж. 1 мамыр). Pro Java ME MMAPI: Java Micro Edition үшін Mobile Media API (1-ші басылым). Апрес. б. 250. ISBN  1-59059-639-0.

Сыртқы сілтемелер