已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
0JavaMediaFrameworkBasics1.Aboutthisguide2.Asimpleaudioplayer3.JMFuserinterfacecomponents4.JMFconcept5.Propagationandreceptionofmedia6.summarizesandresourcesSectionI.AboutthisguideThisguidecontainsthecontents?Javamediaframework(JMF)isanexcitinggenericAPI,whichallowsJavadeveloperstodealwiththemanydifferentwaysthemedia.ThisguideprovidesanoverviewofsomeofthemainfeaturesofJMFsworkthroughanexampleusing.Afterreadingthisguide,youwillunderstandJMFarchitecturemajorplayback.YoucanalsousetherightJMF,usingexistingexamplesandextensionsformorespecificsourcecode.Thisguidecontainsthefollowingtopics:DownloadandinstallJMFThemainclassesandtheirapplicationinJMFJMFarchitecturePlaylocalmediafilesToaccessandmanipulatethemediatoproduceandgraphicaluserinterface(GUI)MediathroughthenetworkReceivemediathroughthenetworkWewillstudythecaseoftheprogramareasfollowsAsimpleaudioplayer(JMFsHelloWorldapplication):Thischaracterplayerinterfaceviathecommandline,simplyenterthenameofthemediafilecanplaymostaudiotypes.ThisaudioplayerdemogenerallydisplayauniqueclassofJMF.Agraphicalmediaplayer:Wewillusethebuilt-inJMFinterfacecomponentstocreateagraphicalinterface,sointhisexercisemusthaveprogrammingexperiencesomegraphicalinterface.TheMediaViewerdemousessomeJavaAWTandSwingclassestodisplaygraphicalcomponentsfortheuser.1Amediabroadcastapplications:Thisapplicationallowsalocalmediafilesoverthenetworktransmission.Thisprocedurecanmaketheflexiblemediaonlytoaspecifiednetworknode,ortransmittedtoasubsetofallnodesinthenetwork.ThisdemousessomeJavaAPIsfornetworktransmissionmediainthenetwork.Aspartofthethirdexercise,wewillmodifythegraphicalinterfaceoftheplayer,toallowittoreceiveandbroadcastmedia.Jump23WatchResources,articles,tutorials,andotherlistsbibliography,whichwillhelpyoutolearnmoreaboutthetopicsincludedinthisguide.AbouttheAuthorEricOlsonatRetekIncworkingsoftwareengineer.IthasfouryearsofworkexperienceintheJavaplatform,andexperiencedindifferentJava-basedtechnology,includingJMF,Jini,Jiro,JSP,servlets,andEJBs.EricgraduatedfromSt.Paul,St.ThomasUniversity,MN,andobtainedadegreeincomputerscience.HeworkedatIBMSanFranciscoprojectteamresponsibleforWebSphereBusinessComponents.HealsolongerImationCorp.,Responsibleforstorageapplications.Now,heisdevelopingweb-basedsoftwaresolutionsfortheretailindustry.Thensparetime,EricandPaulMondayonStereoBeaconcooperation-adistributedpeer-basedJMFmediaplayer.ContactE.SectionAsimpleaudioplayerBrowseInthissection,wewillcreateasimpleaudioplayerforthefirstexercise.ThisexampledescribestheclassesandPlayerManagerinterfaces,thetwomostimportantpartsarebuiltJMF-basedapplications.Inthiscasethefunctionofthelocalgoalistoplayaudiofilesinthecharacterinterface.Wewillstudythissourcecodeandunderstandeachlineofthetaskdone.Aftercompletingthissection,youwillhaveaJMF-baseddemoprogramthatcanbeplayedincludeMP3,WAV,AUandotheraudiofiles.2AfterthiskindofexercisecancheckthesourcecodefileclassificationSimpleAudioPlayer.java.IntroducingthenecessaryclassesSimpleAudioPlayerclassincludessomecallsinitsfirstfewlinesoftheneedtointroduceallthenecessaryclasses:importjavax.media*.;importjava.io.File;importjava.io.IOException;.URL;.MalformedURLException;Thejavax.mediapackageisoneofseveralpackagesdefinedbytheJMF.javax.mediaisacorepackage,includingthedefinitionoftheclassandPlayerManagerinterface.Inthissection,wemainlystudyclassesandPlayerManagerinterfacejavax.mediaclassbehindtherestofthechapters.Inadditiontotheintroductionofjavax.mediastatement,theabovecodesnippetintroducesadeclarationtocreateamediaplayerofsomeinput.PlayerInterfaceInthefollowingcodefragment,createapublicclassSimpleAudioPlayeranddefineaPlayerinstancevariables:publicclassSimpleAudioPlayerprivatePlayeraudioPlayer=null;Playersoundsfamiliartermfromthepoint,becauseitisbuiltonthefoundationofourcommonaudioorvideoplayeron.Infact,thisexampleisusedasaninterfaceastheirtruecopy.Playersrevealthemediaplayer(suchasstereospeakersystemorVCR)relatestoamethodonafunctionalentity.Forexample,aJMFmediaplayercanstartandendofamediastream.Inthissectionspecies,wewillusethePlayerofthebeginningandendofthefunction.CreateaPlayerinafilePlayerinstanceusingJMFtogetaparticularmediafileisverysimple.ManagerJMFinclass3asafactoryproducedmanyspecialinterfacetypes,includingPlayerinterface.Therefore,theresponsibilityoftheManagerclassistocreatePlayerinstance,thefollowingexample:publicSimpleAudioPlayer(URLurl)throwsIOException,NoPlayerException,CannotRealizeExceptionaudioPlayer=Manager.createRealizedPlayer(url);publicSimpleAudioPlayer(Filefile)throwsIOException,NoPlayerException,CannotRealizeExceptionthis(file.toURL();Ifyoureadthissectionofthecode,youcannoticetheManagerclassincludesotherwaystocreateaPlayerinstance.Wewillexaminesomeofthese,asinstantiatedinthelaterchaptersoftheDataSourceorMediaLocator.PlayersstatusJMFdefinesalargenumberofdifferentstatesofaPlayerinstancemayexist.Asfollows:PrefetchedPrefetchingRealizedRealizingStartedUnrealizedUsingthesestateBecauseoftheuseofmediaresourcesareoftenveryintensive,manymethodsaredisclosedbytheJMFisnotoccludedobjects,allowingaseriesofstatechangeeventlistenerforasynchronousnotification.Forexample,aPlayerbeforeitcanstart,youmustgothroughPrefetchedandRealizedstate.Duetochangesinthesestatesrequiresometimetocomplete,JMFmediaapplicationscanbeassignedtocreateathreadtoinitializePlayer4instance,andthencontinuewithotheroperations.WhenPlayerready,itwillnotifytheapplicationofitsstatehaschanged.Inonesuchasoursimpleprogram,thetypeofversatilityisnotveryimportant.Isforthisreason,ManagerclassalsoprovidessomeusefulmethodstocreateRealizedplayers.CallacreateRealizedPlayer()methodtoblockthecallingthreaduntiltheplayerreachesRealizedstate.Inordertocreateaplayercallsanon-blockingmethod,weuseacreatePlayer()methodintheManagerclass.ThefollowinglineofcodecreatesaprogramweneedtouseincasesofRealizedplayer:audioPlayer=Manager.createRealizedPlayer(url);StartingandstoppingPlayerSettostartorstopaPlayerinstancelikeasimpleauthenticationmethodinvocationPlayer,asfollows:publicvoidplay()audioPlayer.start();publicvoidstop()audioPlayer.stop();audioPlayer.close();CallSimpleAudioPlayerclassplay()methodtoimplementPlayerinstancecallsstart()method.Aftercallingthismethod,youcanhearthenativespeakersoundfiles.Thesame,stop()methodallowsplayertostopandcloseoffthePlayerobject.Forreadingandorlocalmediafilesforplayback,closethePlayerinstancereleasesallresourcesareausefulway.Becausethisisasimpleexample,theterminationofasessionisclosedPlayeracceptableway.However,inpracticalapplications,youneedtobecarefulbeforeyougetridofconfirmationPlayermustbeclosedoff.Onceyouveclosedoffplayer,amediaplayeragainbeforeyouhavetocreateanewPlayerinstance(waitforittochangestate).5EstablishaSimpleAudioPlayerFinally,themediaplaybackapplicationtoincludeaninputcommandfromthecommandpromptandcallinmain()method.Inthismain()method,wewillcallcreatesSimpleAudioPlayerapproach:FileaudioFile=newFile(args0);SimpleAudioPlayerplayer=newSimpleAudioPlayer(audioFile);Inonlyafewthingstoplayaudiofilesbeforethecallisaudioplayerhascreatedamethodplay(),asfollows:player.play();Tostopandclearouttheaudioplayer,inthemain()methodshouldhavethefollowingcalls:player.stop();CompileandrunSimpleAudioPlayerEnteratthecommandprompttocompilecasejavacSimpleAudioPlayer.javaprogram.FileSimpleAudioPlayer.classcreatedinthecurrentworkingdirectory.Thentypethefollowingcommandatthecommandprompttoruntheexamplesintheprogram:javaSimpleAudioPlayeraudioFileWillreplaceaudioFileintoaudiofilesonyourlocalmachine.Allrelativefilenamesarerelativetotestthecurrentworkingdirectory.Youwillseesomeofthecurrentlyplayingflaginformationfile.Toterminatetheplayback,presstheEnterkey.Ifthecompilationfails,confirmJMFjarfileshavebeencorrectlyincludedintheCLASSPATHenvironmentvariable.SectionIII.JMFuserinterfacecomponentsPlayVideoIntheprevioussection,welearnedtocreateacharactertoplayaudiofilesthroughtheinterfaceoftheapplication.JMFoneofthemostimportantfeaturesisthatyoudonotneedtoconfigurethemediaplayerawaytounderstandtheformatofthemediafile;everythingisbuilt.Asanexample,thenourpreviousexample,theneedtousetheMP3format,wedo6notneedtomakeanapplicationtoanMP3filetocreateaspecialPlayer.Asyouwillseeinthissectionagain,fortheoperationofthevideofiletobeeffective.JMFdetailedinformationonalltypesofmediafilesinterface.Handlevideoandaudiomedia,thebiggestdifferenceisthatwemustbuildadisplayscreenthatcanplayvideo.Fortunately,JMFcanhandlemanyofthesedata.Thenthesameasthepreviousexample,wewillcreateaPlayerobject,andusealotofvisualcomponentstocreateourvisualmediabrowserdirectlyfromJMFobject.Inthissection,wewillstudytwocasesprocedures.Inthissection,we&aposllwalkthroughthesecondexampleapplication.Pleasere-distributionofthesourcecodeviewMediaPlayerFrame.javainlaterexercises.AbouttheexampleInthissection,wewillbeabletocreateadisplayandrunthelocalaudioandvideomediaapplications.Aspartoftheexercise,wewillexaminesomeofthebuilt-JMFGUIcomponents.FamiliarwithAWTandSwingwillhelpyouunderstandthisexample,itisnotnecessary.UnlessyouneedtorelatedirectlytotheJMFGUIcomponents,orwewillnotdetailthesourcecode.Youcanfinddetailedinstructionsherearenotinvolvedintheannotatedsourcecode.Manyoftheconceptsofthepresentembodiment,weusetheclassesandmethodsaresimilartothefirstexample.MostofthebasicoperationofthesameestablishmentPlayer.ThebiggestdifferenceisthatweneedalittledeeperspecializesPlayerobject,especiallywhenyouneedtogetinformationfromthePlayersmediatime.HowtogetstartedExamplesofthevideoplayerisdesignedasanaudioplayerasanexampletorunfromthecommandline,butinthiscasebasedontheneedtobuildtheGUI.Asintheprevioussection,wefirstcalltheapplicationthroughthemediafilename.Then,theapplicationdisplaysaformwithactionablemediacomponent.InthebeginningofthelineMediaPlayerFramewedefinetheclassandextendfrom,javax.swing.Jframeclass.Thisiswhatmakesthemediaplayeronyourdesktopasaseparateformapproach.Anyclientprogramcreatedafterthemediaplayerobjectcanbedefined7Jframeclassbycallingtheshow()methodtodisplay.HereisanMPEGmoviebeingplayedMediaPlayerFramescreenshot:GetGUIcomponentsPlayerinterfacearesomewaystogetinvolvedinthevisualcomponenthasbeenselected.InMediaPlayerFrame,weusethefollowingcomponents:Player.getVisualComponent()isavisualcomponenttoplayallvideomedia.Player.getControlPanelComponent()isanoperatingtimelinevisualcomponents(includingstart,stop,rewind),butalsocontainssomeusefulinformationmediastream.Player.getGainControl().GetControlComponent()istheoperatingvolume(increase)thevisualcomponent.getGainControl()methodreturnsaGainControlinstance,canbeusedtochangetheprogramtoincreaselevels.ObtainspecialcontrolmediaAPlayerinstancecanalsobecontrolledbyexposingitsgetControl()andgetControls()method,getControls()returnsacontrolsetofobjects,andgetControl()returnsacontrol.Playerscanchoosedifferenttypesofspecialoperationstoexposurecontrolsettospecifythemediatype,ortransportmechanismusedtoobtainthemedia.Ifyouarewritingaonlysupportscertainmediatypesplayer,youneedtorelyonsomeoftheexamplesusedinthePlayerControlobject.Becauseourplayersareveryabstract,isdesignedforplayingavarietyofdifferentmediatypes,wesimplyexposeallControlfortheuserobject.Ifyoufindanyextendedcontrolset,wecanusegetControlComponent()methodtoincreasethecorrespondingvisualcontrolpanelonthelabel.Throughthisapproach,theusercanobserveallofthecomponentsontheplayer.Thefollowingcodefragmentwillcontrolallobjectsexposedtotheuser:Controlcontrols=player.getControls();for(inti=0;iTomakearealapplicationexamplescanControldosomethinguseful(inadditiontothedisplayoutsidethevisualcomponent),theapplicationneedstoknowthespecifictypeoftheControlandassignit.Thereafter,theapplicationcanusethesecontroltocontrolmediaprograms.Forexample,ifyouknowwhatmediayouusefrequentlyexposed8javax.media.control.QualityControltypesofControl,youcanuseQualityControlinterface,aftertheQualityControlinterfacebycallingvariousmethodstochangethenatureofthesetting.UseaMediaLocatorBasedonournewbiggestdifferenceisthatweusethemediaplayerbetweenGUIandourfirstsimpleplayerMediaLocatorobjectinsteadofaURLtocreateaPlayerinstance,asfollows:publicvoidsetMediaLocator(MediaLocatorlocator)throwsIOException,NoPlayerException,CannotRealizeExceptionsetPlayer(Manager.createRealizedPlayer(locator);Wewilldiscussthereasonsforthischangeinlaterchapters.Currently,thesiteonthenetworkresources,anddescriptiononMediaLocatorURLobjectisconsideredtobeverysimilar.Infact,youcancreateaMediaLocatorfromaURL,youcanalsogetfromMediaLocatortotheURL.OurnewURLinamediaplayercreatesaMediaLocator,andusesthefilecreatedbyaMediaLocatorPlayer.CompileandrunMediaPlayerFrameEnteratthecommandprompttocompilecasejavacMediaPlayerFrame.javaprogram.IntheworkingdirectorywillcreateafilenamedMediaPlayerFrame.classs.Typethefollowingtoruntheexampleprograminthecommandprompt:javaMediaPlayerFramemediaFileYouneedtouseamediafileonyourlocalmachinetoreplaceinmediaFile(audioorvideofilescanbe).Allrelativefilenamesarerelativetothecurrentworkingdirectory.YouwillseeacontrolsetofmediafilesGUIcontrolwindowdisplays.ForalistofJMFsupportaudioandvideofiles,theresource23.Iftheinitialcompilationfails,makesureJMFjarfilesarealreadyincludedinthecurrentCLASSPATHenvironmentvariable.MediaPlayerFrameinactionInthispre-holidayyoucanseeavideoplayerisplayingascreenshotMPEGvideofiles.The9screenshotbelowshowsanaudioplayerisplayinganMP3file:Tolearnmoreexamplesofthisexercise,MediaPlayerFramesourcecodetoseecompleted.SectionIV.JMFconceptJMFarchitectureYouhaveseenhoweasyitistouseJMFplaylocalmediafiles,andnowwewilltakeastepback,takealookathowthepieceiscreatedbyJMF-basedmediasuchsophisticatedapplicationsthebigpicture,ishowJMFcreatingsuchasophisticatedmediabasedapplications.ComprehensiveunderstandingoftheJMFarchitectureismeaningless,thissectionwillgiveyouageneralconceptonhowadvancedtheJMFcomponentsarecombinedtocreateadesiredthing.JMFcomponentstructureisveryflexibleanditscomponentscangenerallybedividedintothreeparts:Inputisusedtodescribeaprocess,cesssomeinputonimplementationactivities.Aprocessthathasaclearinputandoutput.Alargenumberofprocessesavailable,canbeusedforaninputoragroupofinputs.Theseprocessescanbelinkedtotheoutputofaprocessisusedtoenteranotherprocess.Inthisstyle,thenumberofprocessmaybeappliedtooneinput.(Thisperiodisoptional-thebeginningofourtwoexamplesdonotcontaintheactualdataprocess,onlyoneinputandoneoutputfilefromthePlayerthrough.)Outputdescribescertaindestinationmedium.Fromthesedescriptions,youcanimagineafterJMFcomponentarchitecturesoundslikeatypicalstereosystemorVCRto.Itiseasytoimaginethat,justasturnontheTVusingJMForadjustthesoundinstereospeakersystemstyle.Forexample,thesimpleactofrecordingyourfavoriteTVprogramsonthebasisofthesecomponentscanbein:Inputisatelevisionbroadcaststream,inthesametransportchannelaudioandvideo.Processarecordingapparatus(thatis,aVCRoranumberofdigitaldevices)convertingtheanalogordigitalaudioandvideobroadcaststreamsandadaptedtotapeorothermediaformats.Outputisformattedtrackrecord(audioandvideo)tocertaintypesofmedia.10JMFdataprocessingmodeThefollowingpictureshowstheJMFdataprocessingmoduleandgivesexamplesofeachtype:Usingthismodel,itiseasytounderstandthatourprevioustwoexamples,audioandvideoinputfromandoutputtoafileonthelocalcomputer.Inlaterchapters,wewilltalkaboutsomeofthetransmissionandreceptionofaudiomediathroughtheJMFnetworkingcapabilities.ProcessingmodelexampleTheJMFinput,processingandoutputmodeslinked,wecanbegintoimaginemanymedia-basedoperationcouldbecompletedbyJMF.Oneexample,convertonetypetoanothertypeofmediaandstoretheoutputtoanewfile.Asanexample,wewantwithoutdamagingtheoriginalfileconvertedaWAVformataudiofilestoMP3format.Thefollowingillustrationoftheprocessmodelisthatwewillbeginthestepstoconvert:InputinthiscaseisaWAVfile.Itisamediaformatconversiontoolforprocessing,andoutputtoanewfile.Now,letuslookateachstepoftheJMFAPIinthismode.Weusetheinput,processingandoutputofthemodelasaconceptualsignpost.JMFinputJMFagain,generallyconsistsofaMediaLocatorobjecttodescribeaninput.Aspreviouslystipulated,MediaLocatorappearanceandbehaviorareverymuchlikeaURL,sothatitcanuniquelyidentifyaresourceonthenetwork.Infact,usingaURLtocreateaMediaLocatorisentirelypossible;wehavetwoexamplesinfrontisdoing.Forourmediaconversionexample,weneedtocreateaMediaLocatortodescribetheoriginalWAVfile.Aswewillseeinlaterchapters,aMediaLocatorcanalsobeusedtodescribeamediastreamacrossthenetwork.Inthiscase,MediaLocatorURLwilldescribethespread-muchlikeanURLspecifiedresourceontheWebforalocalfilesysteminsteadofspecifyingthefiletocreateMediaLocator.MediaLocatordifferentbetweenoneandaURLTosuccessfullyestablishaURLobject,.URLStreamHandler11installedinthesystem.ThisprocessistheabilitytousetheprocessingflowofthestreamtypeisdescribedintheURL.AMediaLocatorobjectandisnotnecessary.Forexample,ournextapplicationwillusetheReal-timeTransportProtocol(RTP)totransmitaudiooverthenetwork.SincemostsystemsdonotinstallaURLStreamHandlerasRTPprotocol,socreateaURLobjectwillfail.Inthisapplication,theobjectwillsucceedonlyMediaLocator.TounderstandmoreURLobjectsandcreateandregisteraURLStreamHandlerinformation,checkthedocumentationontheJDK(see23resources).JMFprocessorWhenweusetheJMFwhentheapplicationprocessorcomponentsaredescribedProcessorInterfaceinstance.YouneedtohavesomefamiliarityProcessor,whichextendstothePlayerinterface.DueProcessorInterfaceinheritancestraightPlayer,italsoinheritsalltheattributesavailablefromPlayer.Inaddition,Processoraddstwoattributes:ConfiguringandConfigured.Theseextendedattributes(andassociatedmethods)Processorcommunicationforcollectinginformationfromtheinputstream.Inourlastexampleprogram,wewillcreateaProcessorforMP3audioencodingformatintoaformatsuitableforthenetworkcommunication.Inlatersections,wewilldiscusscreatingasimpleProcessorsteps.JMFoutputThereareafewmethodsusedtodescribetheoutputstateJMFinprocessingmode.Theeasiest(andwewilluseinthelastexample)isjavax.media.DataSinkinterface.ReadsthemediacontentandaDataSinktransmitsittothedestinationnumber.Audioformatconversionprocessinthissectioninthebegin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑幕墙支撑钢结构创新创业项目商业计划书
- 2025年秋人教版小学数学六年级第一学期期末模拟测试卷及答案
- 增强现实购物体验APP创新创业项目商业计划书
- 人教版(2024)五年级全一册信息科技第10课 猜数游戏有捷径 教案
- 宜昌市体育中心场馆惠民开放:全民健身服务升级实践 -2026 届高三语文主题读写素材 11 月热点时事写作素材
- 2025年基因编辑技术在疾病治疗中的突破与伦理
- 2025年长春辅警招聘考试真题参考答案详解
- 2025年西双版纳州辅警协警招聘考试备考题库附答案详解(考试直接用)
- 2025年通辽辅警协警招聘考试备考题库含答案详解(培优b卷)
- 2025年阿克苏辅警协警招聘考试备考题库(含答案详解)
- 2025年秋季中国南水北调集团青海有限公司招聘42人笔试历年典型考点题库附带答案详解试卷2套
- 2024-2025学年江苏省南京市江宁区苏教版六年级上册期中测试数学试卷(解析版)
- 2025北京市公安局顺义分局勤务辅警、流动人口管理员招聘100人考试笔试备考试题及答案解析
- 水电站运行考试试题及答案
- 雨课堂在线学堂《工程伦理》课后作业单元考核答案
- 2025沧州银行招聘考试笔试参考题库附答案解析
- 2025初中英语九年级总复习模拟试卷
- 2025年商标代理行业分析报告及未来发展趋势预测
- 2025年入团考试题目及答案
- 天津某五层框架结构标准厂房施工组织设计
- 网店运营方案
评论
0/150
提交评论