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

正文內(nèi)容

畢業(yè)設(shè)計(jì)論文-基于java的mp3播放器jmplayer-資料下載頁(yè)

2024-12-03 15:32本頁(yè)面

【導(dǎo)讀】論文中引用他人的文獻(xiàn)、數(shù)據(jù)、圖件、資料,均已在論文中加以說(shuō)。明,除此之外,本論文不含任何其他個(gè)人或集體已經(jīng)發(fā)表或撰寫的成果作品。本文研究做出重要貢獻(xiàn)的個(gè)人和集體,均已在文中作了明確說(shuō)明并表示了謝意。本聲明的法律結(jié)果由本人承擔(dān)。全部或部分內(nèi)容,可以采用影印、掃描等復(fù)制手段保存本論文。

  

【正文】 的美化處理,如果時(shí)間充足可以對(duì)播放器的外觀做進(jìn)一步的美化。圖 51 為播放器的完全顯示模式時(shí)的界面,圖 52為播放器迷你模式時(shí) 的界面 圖 51 JMPlayer完全顯示模式界面 山東輕工業(yè)學(xué)院 2021屆本科生畢業(yè)設(shè)計(jì) (論文 ) 20 圖 52 JMPlayer迷你顯示模式界面 系統(tǒng)關(guān)鍵類設(shè)計(jì) 1. Mp3Player 類 系統(tǒng)的核心類,本系統(tǒng)的整體的類之間的通信采用了設(shè)計(jì)模式中的中介者模式,此類即為此模式當(dāng)中的中介,系統(tǒng)的其他部分都與此類進(jìn)行交互,再由此類做進(jìn)一步的轉(zhuǎn)發(fā)控制,由此降低了系統(tǒng)中各類之間進(jìn)行相互通信的耦合性,系統(tǒng)中的其他類只需要持有一個(gè)對(duì)此核心類的引用,而不必關(guān)心系統(tǒng)中其他類。此類主要實(shí)現(xiàn)的功能為播放控制模塊的主要功能,包括播放、停止播放、下一首播放、前一首播 放、靜音、靜音恢復(fù)等。 2. PlayerEngine 類 主要以多線程的方式實(shí)現(xiàn)了 mp3音樂(lè)播放以及對(duì) mp3音頻文件信息的解析,主要的播放操作功能是采用了 JavaSoundAPI 進(jìn)行的, JavaSound API 以各種解碼和合成器 SPI(服務(wù)提供者接口, Service Provider Interface) 為基礎(chǔ),實(shí)現(xiàn)各種音樂(lè)格式的解碼與轉(zhuǎn)碼。 在處理輸入音頻時(shí),對(duì)于來(lái)自各種音頻輸入端口的信號(hào),例如麥克風(fēng)、 CD播放器、磁帶播放器等,可以在它們到達(dá) TargetDataLine 之前,利用混頻器控制輸入混頻, 最后在程序中通過(guò) TargetDataLine 獲得數(shù)字化的音頻輸入流。 類似地,在處理輸出音頻時(shí),混頻器用來(lái)對(duì)一系列來(lái)自 SourceDataLine 的數(shù)據(jù)進(jìn)行混頻處理,經(jīng)處理后的信號(hào)可輸出到各種輸出端口。如圖 53所示 麥 克 風(fēng) L i n e I nC D L i n e O u t耳 機(jī)揚(yáng) 聲 器端 口 端 口M i x e r 混 頻 器 M i x e r 混 頻 器T a r g e t D a t a L i n eS o u r c e D a t a L i n e C l i p應(yīng) 用 軟 件 圖 53 JavaSound 音頻處理流程圖 3. PlayerFrame 類 山東輕工業(yè)學(xué)院 2021屆本科生畢業(yè)設(shè)計(jì) (論文 ) 21 主要用于 Mp3播放器的外觀顯示,各種控制按鈕、音量控制滾動(dòng)條、播放模式面板、皮膚切換面板、歌詞面板、 mp3列表面板都在此進(jìn)行定義和管理。本類以播放器的功能設(shè)計(jì)點(diǎn)為單位,逐步進(jìn)行各個(gè)模塊的初始化或加載。 4. Mp3FileController 類 主要用于對(duì) mp3 列表內(nèi)的 mp3 文件的管理,包括播放器啟動(dòng)是的初始化和播放器退出時(shí)的對(duì) mp3 列表中數(shù)據(jù)的同步存儲(chǔ)。此類會(huì)使用 Java 的 io 流和Properties 的 load()方法 store()方法相配合進(jìn)行對(duì)數(shù)據(jù)的讀寫。 5. LyricsParser 類 主要用于根據(jù) mp3 進(jìn)行相應(yīng)的 lrc 格式的歌詞文件的查找、解析。此類首先到系統(tǒng)的歌詞目錄 (lyrics)下查找對(duì)應(yīng)的歌詞文件,查找成功后會(huì)使用 Java 的 IO流讀取歌詞文件,并將歌詞文件中的時(shí)間戳和歌詞以 keyvalue 鍵值對(duì)的形式存放到 Properties 中,返回給播放器。 6. LyricsShowThread 類 歌詞顯示控制線程類,由 Mp3Player 類控制的在 mp3 播放時(shí)用于歌詞顯示控制的獨(dú)立線程類。 7. PlayTimeControlThread 類 由于 mp3已播放時(shí)間顯示控制的獨(dú)立線程類。此線程會(huì)標(biāo)記 mp3的開始時(shí)間,用于以后的時(shí)間統(tǒng)計(jì)。 8. Mp3Info 類 Mp3信息實(shí)體類,定義與 mp3相關(guān)的信息,包括 mp3名 、 mp3文件路徑 、 哥曲名 、 藝術(shù)家名 、 專輯名 、 年份 、 播放頻率 等。 9. PlayMode 類 定義了系統(tǒng)的播放模式, 是播放模式的抽象父類。包括它的 5個(gè)子類用來(lái)表示系統(tǒng)的播放模式。其類結(jié)構(gòu)如圖 54所示 圖 54 JMPlayer播放模式類圖 山東輕工業(yè)學(xué)院 2021屆本科生畢業(yè)設(shè)計(jì) (論文 ) 22 10. PlayerConstants 類 播放器的常量類,定義了相關(guān)操作級(jí)配置的常量。如播放器的大小,顯示位置、播放器的歌詞目錄、皮膚目錄等等。 系統(tǒng)類結(jié)構(gòu) 本系統(tǒng)的類結(jié)構(gòu)如圖 55 所示 圖 55JMPlayer 系統(tǒng)類結(jié)構(gòu)圖 山東輕工業(yè)學(xué)院 2021屆本科生畢業(yè)設(shè)計(jì) (論文 ) 23 第六章 軟件功能實(shí)現(xiàn) 播放 Mp3 實(shí)現(xiàn) 本系統(tǒng)中 mp3 的播放主要采用了 JavaSoundAPI 實(shí)現(xiàn),以 JavaSound 的AudioSystem 類為主。首先由 AudioSystem來(lái)獲得系統(tǒng)的音頻輸入流,在獲得音頻輸入流成功的前提下,重置輸入流的音頻格式,并以此重置的音頻輸入流格式來(lái)獲得系統(tǒng)的音 頻 line,獲得音頻 line 成功后,將 mp3 文件以字節(jié)流的形式循環(huán)讀取,并注入到音頻輸出流中,直到 mp3 文件字節(jié)碼讀取完成,以此便實(shí)現(xiàn)了音樂(lè)播放。 Mp3 文件解析實(shí)現(xiàn) 每個(gè) mp3 文件的后 128字節(jié)用于保存了與此 mp3 相關(guān)的信息,首先使用 java的隨機(jī)文件讀寫 RandomAccessFile 來(lái)進(jìn)行文件字節(jié)位置的跳躍,跳躍的位置為文件 的長(zhǎng)度 128,此字節(jié)碼位置即為 mp3 信息的開始位置,如果前三個(gè)字節(jié)為 ” TAG” 則說(shuō)明此 mp3 文件保存了與 mp3 相關(guān)的信息,即可進(jìn)行讀取, 330字節(jié)碼位置保存的是 mp3 的歌名, 3330 保存的是 mp3 的藝術(shù)家, 6330保存的為 mp3 的專輯, 934字節(jié)碼位置保存的為 mp3 的年份,所有與 mp3 相關(guān)的信息讀取完成后,將其封裝為系統(tǒng)中已定義好的 mp3Info 實(shí)體類,返回給播放器。便實(shí)現(xiàn)了 mp3 文件的解析。 Mp3 列表控制類實(shí)現(xiàn) Mp3 文件列表控制類主要使用了 java 的 list 集合和 Properties 集合 ,系統(tǒng)使用 文件保存系統(tǒng)中 mp3 列表中的 mp3 文件,保存形式為 mp3 絕對(duì)路徑 =mp3 名。在播放器啟動(dòng)時(shí),本類首先使用 Properties 類的 load 方法,以 構(gòu)造輸入流,完成對(duì) 文件的讀取,并以此 mp3 數(shù)據(jù)集合初始化播放器的 mp3 文件列表。在整個(gè)播放器的運(yùn)行期間所有對(duì) mp3 列表中數(shù)據(jù)的操作都是在系統(tǒng)的 ListMp3Info集合上進(jìn)行的,而不是每次對(duì) mp3 列表中文件的操作都進(jìn)行數(shù)據(jù)文件的讀取操作,此功能 即為緩存的功能,極大的提高了播放器的性能。最后在播放器退出時(shí),系統(tǒng)使用 文件構(gòu)造輸出流,將系統(tǒng)中 ListMp3Info中的數(shù)據(jù)同步寫回 文件中,以備下一次的讀取。 山東輕工業(yè)學(xué)院 2021屆本科生畢業(yè)設(shè)計(jì) (論文 ) 24 Mp3 歌詞解析及顯示控制實(shí)現(xiàn) 1. 歌詞解析 在播放 mp3 時(shí)系統(tǒng)首先會(huì)到 lyrics 目錄下查找與正在播放的 mp3 對(duì)應(yīng)的歌詞文件歌名 .lrc, 如果找到則進(jìn)行解析。歌詞解析使用 java 的 BufferReader 類,首先以找到的文件構(gòu)造文件數(shù)據(jù)流,然后對(duì)歌詞文件進(jìn)行逐行讀取。因?yàn)?歌詞文件的形式為 [分 ::秒.微妙 ],在讀取出每一行后,利用 java 的正則表達(dá)式進(jìn)行匹配,在此正則表達(dá)式中已經(jīng)定義了有效的時(shí)間格式,將讀取出來(lái)的每行數(shù)據(jù)進(jìn)行匹配,如果匹配成功則將時(shí)間點(diǎn)作為 key,時(shí)間點(diǎn)的歌詞作為 value 放到 properties文件中,歌詞文件讀取完成后將此 Properties 集合類返回給主播放器控制類。 系統(tǒng)使用一個(gè)獨(dú)立的線程控制 mp3 歌詞的顯示,播放器的主控制類首先判斷是否有與當(dāng)前播放的 mp3 對(duì)應(yīng)的歌詞,如果有則此歌詞顯示控制線程隨著 mp3播放的開始同時(shí)啟動(dòng), 此 線程在運(yùn)行時(shí)首先保存一個(gè) mp3 開始播放的時(shí)間點(diǎn),然后每間隔 秒做一次時(shí)間的統(tǒng)計(jì),即使用當(dāng)前時(shí)間點(diǎn) 開始時(shí)間點(diǎn)得出的總毫秒數(shù),由此總毫秒在分別轉(zhuǎn)換為分:秒形式的字符串格式,并到歌詞文件集合中查找,如果查找成功則在播放器的歌詞面板中顯示對(duì)應(yīng)時(shí)間點(diǎn)的歌詞。 山東輕工業(yè)學(xué)院 2021屆本科生畢業(yè)設(shè)計(jì) (論文 ) 25 結(jié)束語(yǔ) 通過(guò)幾個(gè)月的努力,終于完成了基于 java 的音樂(lè)播放器 JMPlayer 的設(shè)計(jì)和開發(fā)。 通過(guò)對(duì)這一段時(shí)間的回顧 我發(fā)現(xiàn),像類似于這種的產(chǎn)品性質(zhì)的開發(fā),整體來(lái)說(shuō)對(duì)設(shè)計(jì)的要求是非常高的,要求軟件有很高的可擴(kuò)展性和可 維護(hù)性。我在軟件開發(fā)和設(shè)計(jì)的過(guò)程中對(duì)一些設(shè)計(jì)思想性的東西有了更進(jìn)一步的了解,比如在此播放器中最核心的一個(gè)模式就是 GOF 的中介者模式,還有其它部分的策略模式、觀察者模式等;另外,我認(rèn)為類的本身及其中的方法和命名也是非常的重要的。整個(gè)項(xiàng)目完成我總結(jié)了兩點(diǎn): 1. 開發(fā)規(guī)范 剛開始編寫代碼的階段沒(méi)太在意這個(gè)問(wèn)題,造成項(xiàng)目中的方法名字、變量的名字五花八門,導(dǎo)致在維護(hù)的時(shí)候很吃力,到后來(lái)不得不制定出一套開發(fā)規(guī)范并嚴(yán)格執(zhí)行。 2. 項(xiàng)目的整體設(shè)計(jì) 因?yàn)榇隧?xiàng)目本身就包含很多的不確定的因素,在開發(fā)過(guò)程中經(jīng)常出現(xiàn)一些改動(dòng),由 于在設(shè)計(jì)上欠缺功力在每次增加新功能和修改已用功能的時(shí)候都能搞的一團(tuán)亂,所以個(gè)人感覺(jué)這是我以后的一個(gè)重點(diǎn)的學(xué)習(xí)的方向。 山東輕工業(yè)學(xué)院 2021屆本科生畢業(yè)設(shè)計(jì) (論文 ) 26 參考文獻(xiàn) [1] 結(jié)成浩. JAVA 多線程設(shè)計(jì)模式 [M].第 1 版.北京:中國(guó)鐵道出版社, 2021. 177185 [2] 秦小波.設(shè)計(jì)模式之禪.第 1 版北京: 機(jī)械工業(yè)出版社 , 2021. 5682 [3] 馬?。貥?gòu) 改善既有代碼的設(shè)計(jì) [M]. 第 1 版. 候捷. 北京:中國(guó)電力出版社,2021. 1279 [4] 劉亞賓 . 精通 Eclipse[M]. 第 1 版 . 北京: 電子工業(yè)出版社 , 2021. 1020 [5] 湯小丹等.計(jì)算機(jī)操作系統(tǒng) [M]. 第 3版 . 西安 :西安電子科技大學(xué)出版社, [6] 海瑞 .JAVA線程 [M].第 3版 . 臺(tái)灣:東南出版社, 2021. 127203 [7] 布魯斯. JAVA 編程思想 [M]. 第 4 版. 陳昊鵬. 北京: 機(jī)械工業(yè)出版社 ,2021. 200400 [8] 劉中兵 . JAVA高手真經(jīng) [M] 第 1 版 .北京 :電子業(yè)出版社 ,2021. 136248 [9] 林智楊.精通 JAVA Swing程序設(shè)計(jì) [M]. 第 1版.北京 : 中國(guó)鐵道出版社 , 2021. 100152 [10] 王鵬等. Java Swing 圖形界面開發(fā)與案例詳解 [M]. 第 1 版. 北京:清華大學(xué)出版社,2021. 123128 [11] 格林. JAVA核心技術(shù) [M]. 第 7版.葉乃文.北京 : 機(jī)械工業(yè)出版社 , 2021. 100152 [12] Kent Back. TestDriven Development By Example. Addison Wesley. July14,2021. 26156 山東輕工業(yè)學(xué)院 2021屆本科生畢業(yè)設(shè)計(jì) (論文 ) 27 致 謝 經(jīng)過(guò)幾個(gè)月的努力我的畢業(yè)設(shè)計(jì)已經(jīng)完成。在畢業(yè)設(shè)計(jì)完成之際,我要特別感謝我的指導(dǎo)老師任曉強(qiáng)老師的熱情關(guān)懷和悉心指導(dǎo)。在我做設(shè)計(jì)的過(guò)程中,老師傾注了大量的心血和汗水,無(wú)論是在設(shè)計(jì)的選題、構(gòu)思和資料的收集方面,還是在論文的撰寫過(guò)程中我都得到了老師悉心細(xì)致的教誨和無(wú)私的幫助。特別是他廣博的學(xué)識(shí)、深厚的學(xué)術(shù)素養(yǎng)、嚴(yán)謹(jǐn)?shù)闹螌W(xué)精神和一絲不茍的工作作風(fēng)使我終生受益,在此表示真誠(chéng)地感謝和深深的謝意。 在設(shè)計(jì)的開發(fā)過(guò)程中,也得到了許多同學(xué)的寶貴建議,在此向他們表示感謝,感謝他們一直以來(lái)對(duì)我的關(guān)心和幫助,向大學(xué)四年一 起生活得舍友們,同學(xué)們深表感謝,感謝你們對(duì)我的關(guān)心和幫助。 同時(shí)我也要感謝所有在系統(tǒng)開發(fā)過(guò)程中幫助過(guò)我的同學(xué)和一些不知名的熱心網(wǎng)友。 謝謝你們把知識(shí)傳授給我。 感謝父母一直以來(lái)對(duì)我的支持和關(guān)愛(ài),感謝所有關(guān)心、支持、幫助過(guò)我的良師益友。 最后,我要感謝的是我的母校山東輕工業(yè)學(xué)院,向在百忙中抽出時(shí)間對(duì)本設(shè)計(jì)進(jìn)行評(píng)審并提出寶貴意見(jiàn)的答辯組的老師表示衷心地感謝。
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1