freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

畢業(yè)設(shè)計(jì)-基于java的mp3播放器的設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2024-09-02 12:17 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 塊 播放列表控制模塊 歌詞控制模塊其相互關(guān)系如圖32所示:播放信息模塊用戶界面模塊播放控制模塊播放列表控制模塊歌詞控制模塊播放列表歌曲信息用戶請(qǐng)求事件 用戶請(qǐng)求事件 視圖信息更新 視圖信息更新 更新信息 信息 更新 讀取 讀取 更新圖32 相互關(guān)系圖 用戶界面模塊為了實(shí)現(xiàn)軟件產(chǎn)品界面的友好性和簡(jiǎn)潔性,同時(shí)又要保證功能的完整性,播放器的控制窗口的設(shè)計(jì)顯得更是不同一般的重要。首先,給出該界面的組件組成。 于一個(gè)小小的窗口,要擺放這么多的控件,如果隨便地放在窗口上的話,將會(huì)使窗口十分混亂,影響使用,所以要對(duì)其擺放位置進(jìn)行合理的規(guī)劃。這些控件被按照功能分成了3組,它們分別是控制面板、播放列表面板和LRC面板。這樣一來(lái),就可以實(shí)現(xiàn)軟件產(chǎn)品界面的友好性與簡(jiǎn)潔性,條理分明,在保證軟件產(chǎn)品功能完整性的同時(shí),方便了用戶的使用。各面板關(guān)系如圖33:主框架控制面板播放列表面板LRC面板系統(tǒng)菜單欄控制按鈕控制條標(biāo)簽播放列表菜單欄LRC右鍵菜單播放列表LRC顯示屏圖33 面板關(guān)系圖 播放信息模塊 放信息模塊由播放信息,播放列表,歌曲信息節(jié)點(diǎn)三個(gè)層次嵌套而成,如34所示:播放信息播放列表1(默認(rèn))播放列表2播放狀態(tài)。歌曲信息節(jié)點(diǎn)1歌曲信息節(jié)點(diǎn)2歌曲信息節(jié)點(diǎn)。歌曲信息節(jié)點(diǎn)1歌曲信息節(jié)點(diǎn)2歌曲信息節(jié)點(diǎn)。圖34 信息模塊關(guān)系圖 對(duì)音頻文件的傳遞 音頻文件的傳送主要是用在播放列表處理的過(guò)程中,當(dāng)播放器的用戶想利用本播放器來(lái)播放一個(gè)音頻文件時(shí),首先要做的就是將該音頻文件所在磁盤(pán)上的地址傳到播放列表模塊中,由播放列表將信息傳遞給播放信息模塊進(jìn)行數(shù)據(jù)更新。當(dāng)要播放該文件時(shí),就從播放信息模塊中提取當(dāng)前索引所指向該文件地址并將地址傳送到播放控制模塊,然后賦值給管理器Manager的新創(chuàng)建的媒體定位器對(duì)象(MediaLocator),Manager創(chuàng)建播放器(Player)后,剩下的工作都交給Player進(jìn)行音頻文件的播放。 對(duì)歌詞文件的傳遞 詞的實(shí)時(shí)顯示作為本播放器的重要功能,LRC歌詞文件的處理流程也就顯得至關(guān)重要,因?yàn)長(zhǎng)RC歌詞可能處于不同位置,所以其地址和數(shù)據(jù)處理流程要比音頻文件的處理流程要復(fù)雜得多。 先,也是將音頻文件所在磁盤(pán)上的地址傳到播放列表中,當(dāng)要播放該文件時(shí),就從播放列表中提取該文件地址并將地址傳送到播放控制窗口,并將音頻文件擴(kuò)展名改為L(zhǎng)RC,以獲得一個(gè)與MP3文件相同路徑的LRC歌詞文件的地址,將音頻文件名和LRC文件名傳遞到播放信息模塊;在播放信息模塊中先讀取音頻文件的TAG信息,然后將音頻文件末尾的內(nèi)容傳遞給歌詞處理模塊,檢查該音頻文件是否內(nèi)嵌了歌詞,如果內(nèi)嵌歌詞存在則分離出時(shí)間信息和歌詞文本并返回;如果不存在內(nèi)嵌歌詞,則檢查同路徑下LRC歌詞文件是否存在,如果存在則將其傳遞給歌詞處理模塊進(jìn)行歌詞處理,分離出時(shí)間信息和歌詞文本并返回;如果不存在則嘗試自動(dòng)關(guān)聯(lián)歌詞文件夾中是否存在該歌詞。如果存在,則將其傳遞給歌詞控制模塊進(jìn)行時(shí)間信息和歌詞文本的分離,然后返回播放控制模塊;如果此時(shí)返回的歌詞存在,則將其傳遞給歌詞顯示窗口進(jìn)行顯示,并使用時(shí)間信息進(jìn)行控制。如果上述3處都沒(méi)有歌詞,則可以使用歌詞右鍵菜單中的關(guān)聯(lián)歌詞功能按鈕手動(dòng)關(guān)聯(lián)LRC歌詞文件。 播放控制流程 器Player從建立之初到消亡,各有一系列已經(jīng)在JMF中編寫(xiě)好的方法可以調(diào)用。 軟件也自定義了一系列方法來(lái)實(shí)現(xiàn)播放,暫停,停止,時(shí)間拖拽,播放邏輯如圖35所示:播放狀態(tài) Stop() Play() 暫停狀態(tài) 停止?fàn)顟B(tài) 正在播放狀態(tài)Player創(chuàng)建Player啟動(dòng)播放歌曲判斷播放器狀態(tài)恢復(fù)播放重新播放停止當(dāng)前播放重置時(shí)間播放暫停停止時(shí)間條拖動(dòng)事件分配資源圖35 播放邏輯圖四、系統(tǒng)詳細(xì)設(shè)計(jì)與實(shí)現(xiàn) 。Eclipse是一個(gè)開(kāi)放源代碼的,基于Java的可擴(kuò)展開(kāi)發(fā)平臺(tái),也同時(shí)是目前非常流行的跨平臺(tái)的自由集成開(kāi)發(fā)環(huán)境(IDE)。Eclipse本身非常小,其設(shè)計(jì)思想是“一切皆為插件”,其他功能都是基于插件的形式與Eclipse無(wú)縫結(jié)合,協(xié)同工作,如Eclipse的圖形開(kāi)發(fā)環(huán)境(SWT/JFace),Java開(kāi)發(fā)環(huán)境插件(JDT),多國(guó)語(yǔ)言包,等。在Eclipse啟動(dòng)后,要真正用到某個(gè)插件是,該插件才會(huì)被動(dòng)態(tài)載入內(nèi)存,不再被使用的插件會(huì)在適當(dāng)?shù)臅r(shí)候被清出內(nèi)存,本系統(tǒng)使用到的典型插件的例子就是用于開(kāi)發(fā)圖形界面的VisualEditor 戶界面的主要有三大任務(wù),即 受被改變的信息,顯示/更新界面信息 聽(tīng)用戶/播放器的事件 改變的信息傳遞給其他控制模塊 重要的任務(wù)無(wú)意識(shí)監(jiān)聽(tīng)用戶/播放器的事件并作出相應(yīng)的反應(yīng)。 放功能是媒體播放器所有控制功能中最重要的一個(gè)功能,沒(méi)有了它,播放器不能播放,也就不能稱之為播放器了。在本播放器系統(tǒng)中,當(dāng)點(diǎn)擊播放會(huì)有兩種狀態(tài)轉(zhuǎn)換:第一種是從停止?fàn)顟B(tài)轉(zhuǎn)換到播放狀態(tài);第二種是從暫停狀態(tài)轉(zhuǎn)換到播放狀態(tài)。播放命令由播放按鈕點(diǎn)擊產(chǎn)生單機(jī)事件形成播放命令當(dāng)播放器接收到播放命令后,會(huì)依次執(zhí)行下面的過(guò)程: 1:查播放器的當(dāng)前狀態(tài)是否是暫停狀態(tài),即判斷暫停狀態(tài)布爾型變量isPaused的值。如果是暫停狀態(tài),那么讓Player繼續(xù)播放,計(jì)時(shí)器Timer開(kāi)始計(jì)時(shí),并置isPaused值為False后,退出播放控制過(guò)程;如果不是暫停狀態(tài),則執(zhí)行第2步; 2:查播放列表中是否有媒體文件,如果沒(méi)有則調(diào)用ListController添加歌曲過(guò)程進(jìn)行添加,然后再次執(zhí)行本過(guò)程進(jìn)行播放;如果播放列表中有文件則執(zhí)行第3步; 3:查播放列表索引,判斷是否選中了播放
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1