帶面板的視頻播放器的制作_第1頁
帶面板的視頻播放器的制作_第2頁
帶面板的視頻播放器的制作_第3頁
帶面板的視頻播放器的制作_第4頁
帶面板的視頻播放器的制作_第5頁
已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1 1 2 3 13 16 17了進一步鞏固課堂上所學(xué)到的知識,深刻把握J(rèn)ava技術(shù)的重要概念及其JMF提供了一個平臺無關(guān)的框架來呈現(xiàn)時基媒體(time-basedmedia)JavaMediaPlayerAPI的設(shè)計目標(biāo)是支持多種標(biāo)準(zhǔn)的媒體格式,包括MPEG-1,MPEG-2,QuickTime,AVI,WAV,AU和MIDI.使用JMF,可以同步呈現(xiàn)不同來定義事件模型,用于Player和應(yīng)用程序間的異步通信有時,JMF的一些方法會返回非預(yù)期的結(jié)果,通過檢查返回直,我們可以檢測實際發(fā)生的事情:我們可以通過返回直檢查實際被設(shè)置的數(shù)值,例如:并不是所有的播放器都可以每周期5次的速率呈現(xiàn)媒體數(shù)據(jù),如果我們調(diào)了setRate(5.0),播放器將會設(shè)置一個合法的近似直,這個數(shù)值可能是5.0也可能是1.0,我們需要檢查返回數(shù)據(jù)來確認(rèn)被設(shè)置的數(shù)據(jù)。可能不知道媒體的時長,這時如果我們調(diào)了getDuration(),getDuration會返回DURATIONUNKNOWN.當(dāng)媒體被播放完一次,再調(diào)getDuration時,則會返回正確的時長。4.2程序設(shè)計圖器個打開循環(huán)退出暫停設(shè)置播放文件上一個下一4.3設(shè)計及核心代碼創(chuàng)建“文件”菜單創(chuàng)建“打開”菜單把JMFMediaPlayer對象注冊成功為“打開”菜單項動作事件的監(jiān)聽器把“打開”菜單項加入“文件”菜單把“文件”菜單中加入一條水平分隔線創(chuàng)建帶檢查框的“循環(huán)”菜單項把JMFMediaPlayer對象注冊成功為“循環(huán)”菜單項動作事件的監(jiān)聽器把“循環(huán)”菜單項加入“文件”菜單在“文件”菜單項中加入一條水平分隔線按照創(chuàng)建“打開”菜單項的過程,創(chuàng)建“退出”菜單項創(chuàng)建“播放”菜單創(chuàng)建“上一個”菜單創(chuàng)建“下一個”菜單項創(chuàng)建“保存”菜單把JMFMediaPlayer對象注冊成功為“暫?!辈藛雾梽幼魇录谋O(jiān)聽器把“暫?!辈藛雾椉尤搿霸O(shè)置”菜單在“設(shè)置”菜單中加入一條水平分隔線創(chuàng)建“刪除”菜單項把JMFMediaPlayer對象注冊成功為“刪除”菜單項動作事件的監(jiān)聽器創(chuàng)建一個菜單條(MenuBar)把“文件”菜單加入到菜單條把“播放控制”菜單加入到菜單條把“播放列表”菜單加入到菜單條//創(chuàng)建播放器的菜單JMenufileMenu=newJMeopenMemuItemaddActioUIManager.setLookAndFeelUIManagergetSystemLookAndFeelClassName}}動作監(jiān)聽器根據(jù)用戶的操作作出相應(yīng)的反應(yīng)(1)如果動作事件起源于“退出”菜單項,觸發(fā)一個給查監(jiān)聽器的窗口關(guān)閉事件(2)如果動作事件起源于“播放“菜單項,判斷當(dāng)前是否存在一個播放器,存在則將該播放器置于運動狀態(tài)(3)如果動作事件起源于“暫停”菜單項,判斷當(dāng)前是否存在一個播放器,存在則停止該播放器的播放(4)如果動作事件起源于“下一個”菜單項,判斷當(dāng)前是否存在一個播放器,存在則停止該播放器的播放,并把播放指針移到下一個文件(5)如果動作事件起源于“打開”菜單,則:創(chuàng)建一個“打開媒體文件“對話框把對話框的當(dāng)前目錄設(shè)置為上次關(guān)閉時的目錄顯示對話框。這個對話框是一個模式對話框如果用戶沒有通過對話框選擇媒體文件,則返回(6)如果出現(xiàn)異常顯示錯誤信息,然后返回把主窗口的標(biāo)題設(shè)置為媒體文件的名字把JMFMediaPlayer對象注冊為來自JMF播放器對象的控制器事件的監(jiān)讓JMF播放器對象預(yù)先提取媒體內(nèi)容/***實現(xiàn)了ActionListenr口,處理組件的活動事件*/publicvoidactionPerformed(ActionEvente){if(e.getActionCommand().equa退ls出(")){//調(diào)用dispose以便執(zhí)行windowCloseddispose();return;}FileDialogfileDialog=newFileDialog(tFileDialog.LOAD);fileDialog.setDirectory(currentDirectory);fileDialog.setVisible(true);//如果用戶放棄選擇文件,則返回if(fileDialog.getFile()==null){}}playerManagercreatePlayeSystem.out.println("不能找到}System.out.println("無法創(chuàng)建}playeraddControllerListen}控制監(jiān)聽器控制監(jiān)聽器完成與控制相關(guān)的操作,具體包括以下幾種情況JMFMediaPlayer容器拆除視覺部件。如果JMF播放器的控制面板部件存在,從從JMFMediaPlayer容器拆除控制面板部件(2)當(dāng)媒體回放結(jié)束,復(fù)位JMF播放器對象的開始時間。(3)當(dāng)預(yù)提取媒體內(nèi)容結(jié)束,JMF播放器對象開始播放媒體(4)當(dāng)實例化(realize)完成,則獲取JMF播放器對象的視覺部件,如果視覺部件存在,則把它加入到JMFMediaPlayer容器的中間獲取JMF播放器對象的控制面板部件,如果控制面板部件存在,則把它加入到JMFMediaPlayer容器的下方獲取JMF播放器對象的擴展控制面板部件,如果擴展控制面板部件存在,則把它加入到JMFMediaPlayer容器的上方如果播放中含有圖形,執(zhí)行pack()操作*實現(xiàn)ControllerListen接er口的方法,處理播放器的控制事件*/publicvoidcontrollerUpdate(ControllerEvente){//調(diào)用player.close時()ControllerClosedEvn件t出現(xiàn)。//如果存在視覺部件,則該部件應(yīng)該拆除(為一致起見,//我們對控制面板部件也執(zhí)行同樣的操作)if(einstanceofControllerClosedEvent){if(vedioComponent!=null){this.getContentPane().remove(vedioComponent);this.vedioComponent=null;}if(controlComponent!=null){this.getContentPane().remove(controlComponent);}}}}}}}}}其他監(jiān)聽器1.菜單項監(jiān)聽器菜單項監(jiān)聽器主要針對“循環(huán)”菜單項的單擊動作進行反應(yīng)當(dāng)菜單項狀態(tài)改變時,切換“循環(huán)”菜單被選中的狀態(tài)2.窗口監(jiān)聽器值得注意的是窗口監(jiān)聽器是在構(gòu)造函數(shù)中進行定義和注冊的,這一點不同于以上介紹的其他方法,它只是在退出窗口時執(zhí)行。定窗口大小,并顯示控制器//處理“循環(huán)”復(fù)選框菜單項的點擊事件}}}}我們首先來播放一個視頻,以《鐵拳:血之復(fù)仇》為例,視頻格式為AVI格式,以下為視頻截圖下面來測試一下播放音頻文件,以《本兮:情花》為例,此音樂文件的格式為WAV本兮-情花本兮-情花way文件設(shè)孟番放上一個下一個叫目X 第6章課程設(shè)計心得體會這次課程設(shè)計我做的是帶面板的視頻播放器的制作,主要是服務(wù)于學(xué)生進這個播放器主要是我和隊友一起開發(fā)的,但也得到了老師和同學(xué)的很大幫助。我在做播放器的過程中遇到了很多問題,有的是知識存儲不足,有的是考慮不夠周全,之所以能夠順利實現(xiàn)基本功能,離不開老師和同學(xué)的大力相助。事實證明,只靠自己是不能順利設(shè)計完成一個功能完整的播放器的,必須充分利用團隊的力量。實驗過程中,首先要將系統(tǒng)要實現(xiàn)的功能分為幾大模塊,然后每個組員分別完成,在此過程中使我加深了對Java的理解,以及如何進行團隊工作的劃分,學(xué)會發(fā)現(xiàn)各組員的長處并將其發(fā)揮出來。雖然大家沒怎么學(xué)過Java,但大家都有C語言基礎(chǔ),所以通過努力實驗,進一步培養(yǎng)我們利用Java語言進行編程和調(diào)試程序的能力,同時使我們能夠?qū)W會將C語言與Java語言結(jié)合起來編寫較復(fù)雜具有實際意義和算法復(fù)雜度較小的程序。與此同時熟練掌握J(rèn)ava語言的編輯,編譯,調(diào)試程序,并將算法轉(zhuǎn)變?yōu)槌绦驅(qū)崿F(xiàn)。開發(fā)設(shè)計一個播放器,最重要的是細心,并不是一定要做到面面俱到,但也要充分考慮到播放器的功能和用途,不管做什么設(shè)計,只用運用到實際應(yīng)用中,才具有先現(xiàn)實意義。所以在準(zhǔn)備工作中要正確分析社會需求了解現(xiàn)實應(yīng)用,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論