資源描述:
《基于java的flash播放器》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、基于Java的flash播放器(張鵬201328000936069)一、設(shè)計(jì)思路首先我們來看看構(gòu)造這個(gè)flash播放器要達(dá)到什么樣的目標(biāo):flash播放器是一個(gè)菜單驅(qū)動(dòng)的簡單AWT應(yīng)用。flash播放器包含一個(gè)“文件”菜單,文件菜單包含三個(gè)菜單項(xiàng):“打開”,用來打開媒體文件(mp3)。“循環(huán)”,是播放一次(默認(rèn)),還是重復(fù)播放?!巴顺觥?,退出程序。flash播放器可以在多種平臺(tái)上運(yùn)行。flash播放器的核心功能通過JMF(JavaMediaFramework)API實(shí)現(xiàn)。JMF擴(kuò)展了J2SE平臺(tái)的多媒體能力,允
2、許Java應(yīng)用和Applet截取、回放、轉(zhuǎn)換包括音頻和視頻在內(nèi)的多種媒體。二、初步設(shè)計(jì)我們把這個(gè)媒體播放器的設(shè)計(jì)分成兩個(gè)部分:GUI設(shè)計(jì),偽代碼設(shè)計(jì)。在GUI設(shè)計(jì)中,我們要了解構(gòu)成程序的各個(gè)GUI部件。在偽代碼設(shè)計(jì)中,我們用自然語言寫出程序運(yùn)行原理。2.1GUI設(shè)計(jì)媒體播放器的用戶界面包含一個(gè)主窗口、一個(gè)菜單和一個(gè)打開文件的對話框。首先我們來看看主窗口的設(shè)計(jì)。主窗口應(yīng)該把窗口標(biāo)題顯示為“簡單flash播放器”,顯示“文件”菜單?!拔募辈藛伟齻€(gè)菜單項(xiàng)?!按蜷_”菜單顯示一個(gè)對話框,用來選擇媒體文件的位置?!把?/p>
3、環(huán)”菜單決定媒體文件只播放一次(默認(rèn))還是反復(fù)播放(當(dāng)菜單被選中)。最后,“退出”菜單關(guān)閉程序。另外,點(diǎn)擊主窗口右上角的關(guān)閉按鈕也可以關(guān)閉程序。請參見圖二。圖二:“文件”菜單點(diǎn)擊“文件/打開”菜單時(shí),“打開媒體文件”對話框出現(xiàn)。選中媒體文件之后,點(diǎn)擊“打開”按鈕即可打開媒體文件;點(diǎn)擊“取消”按鈕中止文件打開操作。如圖三所示::“打開媒體文件”對話框除了上面提到的部件之外,媒體播放器還包含一個(gè)視覺部件、一個(gè)控制面板部件。視覺部件順序播放媒體文件包含的各幀圖像;控制面板部件允許用戶暫停、開始媒體文件的回放,或進(jìn)行其
4、他控制操作,例如查看媒體文件信息。2.2偽代碼設(shè)計(jì)前面我們了解了構(gòu)成媒體播放器GUI的各個(gè)部件,下面要開始“設(shè)想”一下這個(gè)程序的具體構(gòu)造。在正式編寫代碼之前,我們先用偽代碼的形式寫出這個(gè)程序的運(yùn)行過程,以后正式編寫代碼時(shí)只需把偽代碼翻譯成Java代碼即可。下面給出了媒體播放器的偽代碼描述:應(yīng)用的類名稱:Player超類:Frame監(jiān)聽器分類:動(dòng)作事件,控制器事件,菜單項(xiàng)事件,繪圖事件,窗口事件main:*為Player對象分配內(nèi)存。調(diào)Player構(gòu)造函數(shù),創(chuàng)建主窗口(同時(shí),隱含地創(chuàng)建/啟動(dòng)了AWT后臺(tái)線程)*結(jié)
5、束主程序線程。此時(shí)AWT線程繼續(xù)運(yùn)行。flash構(gòu)造函數(shù):*設(shè)置主窗口的標(biāo)題*注冊窗口監(jiān)聽器,以處理窗口關(guān)閉事件*創(chuàng)建“文件”菜單*創(chuàng)建“打開”菜單項(xiàng)*把Player對象注冊成為“打開”菜單項(xiàng)動(dòng)作事件的監(jiān)聽器*把“打開”菜單項(xiàng)加入“文件”菜單。*在“文件”菜單中加入一條水平分隔線*創(chuàng)建帶檢查框的“循環(huán)”菜單項(xiàng)*Player對象注冊成為“循環(huán)”菜單項(xiàng)事件的監(jiān)聽器*把“循環(huán)”菜單項(xiàng)加入“文件菜單”*在“文件”菜單中加入一條水平分隔線*按照創(chuàng)建“打開”菜單項(xiàng)的過程,創(chuàng)建“退出”菜單項(xiàng)*創(chuàng)建一個(gè)菜單條(MenuBar)
6、*把“文件”菜單加入到菜單條*把新創(chuàng)建的菜單條設(shè)置為主窗口的菜單條*顯示主窗口*結(jié)束構(gòu)造函數(shù)動(dòng)作監(jiān)聽器:當(dāng)出現(xiàn)動(dòng)作時(shí):*如果動(dòng)作事件起源于“退出”菜單項(xiàng),*觸發(fā)一個(gè)給窗口監(jiān)聽器的窗口關(guān)閉事件*返回*創(chuàng)建一個(gè)“打開媒體文件”對話框*把對話框的當(dāng)前目錄設(shè)置為上次關(guān)閉時(shí)的目錄*顯示對話框。這個(gè)對話框是一個(gè)模式對話框*如果用戶沒有通過對話框選擇媒體文件*返回*保存用戶在對話框中選擇的目錄*如果以前已經(jīng)創(chuàng)建JMF播放器對象*關(guān)閉該對象創(chuàng)建播放圖片菜單其中包含一個(gè)循環(huán)播放圖片的菜單條單擊循環(huán)播放菜單條事件:會(huì)先停止mp3的
7、播放,單擊最大化圖標(biāo)接著循環(huán)播放圖片,在循環(huán)播放圖片的時(shí)候,可以單擊播放菜單在播放圖片時(shí)播放背景音樂。*根據(jù)指定的目錄和名字,創(chuàng)建一個(gè)使用file:協(xié)議的媒體定位器(MediaLocator)對象,再利用該對象創(chuàng)建一個(gè)JMF播放器對象*如果出現(xiàn)異常*顯示錯(cuò)誤信息,然后返回*把主窗口的標(biāo)題設(shè)置為媒體文件的名字*把Player對象注冊為來自JMF播放器對象的控制器事件的監(jiān)聽器*讓JMF播放器對象預(yù)先提取媒體內(nèi)容*返回控制器監(jiān)聽器:當(dāng)控制器被關(guān)閉:*如果JMF播放器的視覺部件存在,從Player容器拆除視覺部件*如果
8、JMF播放器的控制面板部件存在,從Player容器拆除控制面板部件*返回當(dāng)媒體回放結(jié)束:*如果“循環(huán)”菜單被選中*復(fù)位JMF播放器對象的開始時(shí)間*讓JMF播放器對象開始播放媒體*返回當(dāng)預(yù)提取媒體內(nèi)容結(jié)束:*JMF播放器對象開始播放媒體*返回當(dāng)實(shí)例化(realize)完成:*獲取JMF播放器對象的視覺部件*如果視覺部件存在,則把它加入到Player容器的中間*獲取JMF播放器對象的控制面