java課程設(shè)計(jì)java音樂(lè)播放器_第1頁(yè)
java課程設(shè)計(jì)java音樂(lè)播放器_第2頁(yè)
java課程設(shè)計(jì)java音樂(lè)播放器_第3頁(yè)
java課程設(shè)計(jì)java音樂(lè)播放器_第4頁(yè)
java課程設(shè)計(jì)java音樂(lè)播放器_第5頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、java程序設(shè)計(jì)課程設(shè)計(jì)題 目 java音樂(lè)播放器 學(xué) 號(hào):姓 名: 指導(dǎo)教師:完成時(shí)間: 目 錄第一章 系統(tǒng)概述31需求分析31.1任務(wù)目的:3第二章 項(xiàng)目開發(fā)計(jì)劃書以及小組人員分工表42.1 項(xiàng)目開發(fā)計(jì)劃書42.2 小組人員分工表4第三章 總體設(shè)計(jì)說(shuō)明43.1 功能描述43.4.1 mp3播放53.4.2播放控制53.4.3播放信息控制53.4.4 mp3列表管理5第四章 詳細(xì)設(shè)計(jì)54.1界面設(shè)計(jì)54.2各個(gè)功能描述64.2.1mp3播放64.2.2播放控制64.2.3播放信息控制64.2.4mp3文件列表管理64.2.5顯示模式64.2.6音量控制74.2.7已播放時(shí)間的控制74.3運(yùn)行

2、環(huán)境74.4程序流程圖8第五章 調(diào)試與測(cè)試:95.1調(diào)試:95.2 測(cè)試:95.3實(shí)驗(yàn)結(jié)果95.4 總結(jié)分析10參考資料10java課程設(shè)計(jì)心得體會(huì)11【摘 要】摘 要 音樂(lè)播放器是一種用于播放各種音樂(lè)文件的多媒體播放軟件。它涵蓋了各種音樂(lè)格式的播放工具,比如:mp3播放器,wma播放器,mp4播放器等。它們不僅界面美觀,而且操作簡(jiǎn)單,帶你進(jìn)入一個(gè)完美的音樂(lè)空間。 本系統(tǒng)是一個(gè)簡(jiǎn)單的mp3音樂(lè)播放器實(shí)現(xiàn),旨在借助于java語(yǔ)言的強(qiáng)大的跨平臺(tái)特性來(lái)實(shí)現(xiàn)本播放器的跨平臺(tái)的通用。但由于設(shè)計(jì)時(shí)間有限目前僅支持mp3音樂(lè)文件的播放。主要使用了java中的多線程編程,系統(tǒng)中的mp3播放、歌詞解析及顯示、播

3、放時(shí)間的顯示控制、播放器的主界面等都是單獨(dú)采用一個(gè)獨(dú)立的線程來(lái)進(jìn)行管理控制的。 基于本程序較小,并不需要使用到數(shù)據(jù)庫(kù),java媒體框架(jmf)使你能夠編寫出功能強(qiáng)大的多媒體程序,卻不用關(guān)心底層復(fù)雜的實(shí)現(xiàn)細(xì)節(jié)。jmf api的使用相對(duì)比較簡(jiǎn)單,但是能夠滿足幾乎所有多媒體編程的需求。本程序要求如下:媒體播放器使用java編寫一個(gè)程序?qū)崿F(xiàn)媒體播放器的功能。此次設(shè)計(jì)在microsoft windows xp系統(tǒng)下,以java為開發(fā)語(yǔ)言,在eclipse開發(fā)平臺(tái)上進(jìn)行的設(shè)計(jì)與實(shí)現(xiàn)?!娟P(guān)鍵詞】:java、jmfapl、播放器第一章 系統(tǒng)概述1需求分析1.1任務(wù)目的:1實(shí)現(xiàn)音頻文件的正確播放;2. 能夠?qū)?/p>

4、現(xiàn)對(duì)音頻播放的控制,如暫停,播放,快進(jìn),快退,上一個(gè),下一個(gè)等功能;3能夠進(jìn)行文件音頻的選擇,全屏,音量的控制,拖動(dòng),播放模式的控制等;要求掌握:1) 掌握java的語(yǔ)言規(guī)范,面向?qū)ο蟮暮诵母拍詈吞匦浴?) 掌握java的編程技術(shù),包括異常處理,圖形界面設(shè)計(jì),多線程,網(wǎng)絡(luò)通信程序等。3) 掌握java應(yīng)用軟件的開發(fā)環(huán)境和開發(fā)過(guò)程4) 掌握基于jsp網(wǎng)站的開發(fā)環(huán)境和開發(fā)過(guò)程5) 掌握面向?qū)ο蟮乃枷牒统绦蛟O(shè)計(jì)方法。1.2程序的設(shè)計(jì)、調(diào)試、運(yùn)行的軟件環(huán)境:操作系統(tǒng):windows xp(sp2)jdk環(huán)境:java se development kit(jdk)version 6開發(fā)工具:eclip

5、se3.4.1運(yùn)行平臺(tái):windows、linux各個(gè)版本、mac等任何平臺(tái)運(yùn)行環(huán)境:java se runtime environment(jre)version第二章 項(xiàng)目開發(fā)計(jì)劃書以及小組人員分工表2.1 項(xiàng)目開發(fā)計(jì)劃書名稱時(shí)間工作內(nèi)容下達(dá)設(shè)計(jì)任務(wù)1天(集中)說(shuō)明如何著手設(shè)計(jì)的方法和設(shè)計(jì)任務(wù)的解釋說(shuō)明。收集、分析資料及文檔2天項(xiàng)目組在項(xiàng)目經(jīng)理的組織下選題、分析,識(shí)別實(shí)體,完成項(xiàng)目開發(fā)計(jì)劃書及小組人員分工。設(shè)計(jì)2天各項(xiàng)目組完成系統(tǒng)層次圖、用戶界面設(shè)計(jì)、完成設(shè)計(jì)說(shuō)明書程序編寫和測(cè)試7天根據(jù)方案進(jìn)行現(xiàn)場(chǎng)編程、調(diào)試。編寫設(shè)計(jì)文檔2天完成軟件測(cè)試以及用戶操作手冊(cè)的編寫。文檔提交、答辯1天各小組提交

6、文檔,教師根據(jù)情況選擇是否答辯及答辯方式(抽樣答辯或全員答辯)。2.2 小組人員分工表姓名班級(jí)學(xué)號(hào)任務(wù)分配組 員音樂(lè)播放器界面設(shè)計(jì),各個(gè)控制按鈕功能實(shí)現(xiàn)組員 程序的修改、調(diào)試,顯示操作結(jié)果,文檔第三章 總體設(shè)計(jì)說(shuō)明3.1 功能描述 本mp3播放器主要能夠正確的播放音頻文件,能夠進(jìn)行播放文件的選擇,文件列表框中陳列選擇的音頻文件,能夠控制音頻的播放,退出,停止,快進(jìn),快退,下一個(gè),上一個(gè),音量的控制,靜音控制,全屏選擇,任意改變播放視頻界面大小等功能。3.2功能結(jié)構(gòu)圖 本mp3音樂(lè)播放器的主要功能分為五大模塊,分別是播放控制模塊播放信息控制模塊、mp3列表管理模塊、以及其他功能模塊。在各個(gè)模塊的

7、內(nèi)容如圖3-1所示:3.4各個(gè)功能詳細(xì)描述3.4.1 mp3播放 此部分為系統(tǒng)的核心部分,主要使用了javasoundapi控制操作系統(tǒng)的音頻系統(tǒng),以音頻系統(tǒng)的音頻輸入輸出流進(jìn)行mp3的播放,此部分是播放控制模塊、播放信息控制模塊、歌詞模塊等的運(yùn)行基礎(chǔ)。3.4.2播放控制 主要進(jìn)行mp3音樂(lè)文件的播放控制,主要包括常見播放器的基本的播放控制功能如停止功能、下一首功能、前一首功能等,包括播放器的播放模式的控制(主要實(shí)現(xiàn)了常用的五種播放模式:?jiǎn)吻シ?、單曲循環(huán)、循環(huán)播放、隨機(jī)播放)。模式播放的控制主要用在mp3處于播放模式控制下的音樂(lè)文件播放完成時(shí)使用。3.4.3播放信息控制主要進(jìn)行當(dāng)前播放狀態(tài)的

8、控制,如播放是處于播放還是停止?fàn)顟B(tài)的信息。當(dāng)前正在播放的mp3的播放時(shí)間的顯示控制;3.4.4 mp3列表管理主要進(jìn)行系統(tǒng)中mp3列表中音樂(lè)文件的維護(hù)。主要是對(duì)播放列表經(jīng)行控制:播放列表中的文件、從列表中刪除、向列表中添加、清除列表文件等功能。第四章 詳細(xì)設(shè)計(jì)4.1界面設(shè)計(jì)整個(gè)音樂(lè)播放器的界面有菜單欄、列表欄、播放界面、音樂(lè)控制臺(tái)、顯示播放時(shí)間信息欄。具體效果如圖所示:4.2各個(gè)功能描述4.2.1mp3播放 播放器以java多線程編程設(shè)計(jì)了播放器的mp3播放,每播放一首新的mp3音樂(lè)時(shí)都會(huì)產(chǎn)生一個(gè)獨(dú)立的播放線程。在每播放一首新的mp3時(shí),系統(tǒng)會(huì)對(duì)播放器的狀態(tài)做檢查,如果有正在播放音樂(lè)的線程在運(yùn)

9、行,則首先停止此線程,并重置播放器的狀態(tài)。4.2.2播放控制 主要功能包括播放、停止播放、下一首播放,播放、前一首播放4.2.3播放信息控制 主要功能包括顯示當(dāng)前的播放狀態(tài)、當(dāng)前播放的音樂(lè)文件、mp3的歌手、mp3的音頻頻率以及當(dāng)前mp3播放時(shí)間信息的控制和顯示。4.2.4mp3文件列表管理 本節(jié)主要包括對(duì)mp3文件的增加、增加時(shí)對(duì)音樂(lè)文件的檢查(此播放器暫時(shí)只支持.mp3)、mp3丈件的刪除以及mp3播放是播放索引的控制和增加刪除mp3文件時(shí)mp3顯示的下標(biāo)索引的控制。4.2.5顯示模式 主要包括完全顯示模式功能和迷你顯示模式功能。4.2.6音量控制音量控制主要完成控制播放器的音量的大小以及

10、靜音的控制。音量控制按鈕準(zhǔn)備設(shè)計(jì)為一個(gè)滑動(dòng)條,根據(jù)滑動(dòng)條的滾動(dòng)實(shí)現(xiàn)播放器音量大小的增減。系統(tǒng)在開始時(shí)要讀取上次播放器的使用時(shí)音量并初始化到播放器的界面上,系統(tǒng)在退出是要對(duì)播放器的音量進(jìn)行保存以便下一次讀取。4.2.7已播放時(shí)間的控制 使用一個(gè)單獨(dú)的線程來(lái)控制mp3的已播放時(shí)間的統(tǒng)計(jì)和顯示,當(dāng)mp3開始播放是此線程開始運(yùn)行,當(dāng)mp3停止播放時(shí),此線程結(jié)束。此線程運(yùn)行期間會(huì)首先標(biāo)記一個(gè)mp3的開始播放時(shí)間,然后會(huì)每0.5秒鐘對(duì)已播放的時(shí)間進(jìn)行一次統(tǒng)計(jì)計(jì)算,并將計(jì)算的結(jié)果格式化為適當(dāng)?shù)臅r(shí)、分、秒的格式顯示在系統(tǒng)的播放信息控制面板上。4.3運(yùn)行環(huán)境jmf事件報(bào)告機(jī)制允許我們的程序響應(yīng)媒體驅(qū)動(dòng)的錯(cuò)誤,比

11、如數(shù)據(jù)丟失或資源不可用。事件系統(tǒng)同時(shí)也提供了重要的通知協(xié)議;當(dāng)我們的程序調(diào)用一個(gè)player的異步方法時(shí),只有當(dāng)收到響應(yīng)的事件消息時(shí),才能確認(rèn)操作是否完成。有兩種jmf對(duì)象會(huì)拋出事件,他們是: gaincontrol對(duì)象 和 controller 對(duì)象。 對(duì)于事件, gaincontrol和 controller 遵循java beans 形式。gaincontrol對(duì)象只拋出一種類型的事件 gainchangeevent。我們通過(guò)實(shí)現(xiàn) gainchangelistener interface來(lái)響應(yīng)gain(增益?)的變化。controller則會(huì)拋出多種派生自 controllerevent

12、的事件。我們通過(guò)實(shí)現(xiàn) controllerlistener interface 來(lái)接收諸如player的controller拋出的事件消息。下圖顯示了controller拋出的各種事件類型:controllerevents 可分為三類:改變通知、關(guān)閉事件和轉(zhuǎn)換事件 變化通知(change notification events)諸如 ratechangeevent 和 durationupdateevent。他們表示player的一些屬性數(shù)值發(fā)生了變化。這類事件通常是對(duì)一些方法調(diào)用的回饋。例如, 一個(gè)player的setrate方法被調(diào)用,他會(huì)拋出一個(gè) ratechangeevent. 轉(zhuǎn)換事

13、件(transitionevents) 讓我們的程序能夠響應(yīng)player的狀態(tài)變化。 當(dāng)player從一個(gè)狀態(tài)轉(zhuǎn)換到另一個(gè)狀態(tài)時(shí),就會(huì)拋出一個(gè)轉(zhuǎn)換事件。 (在1.4中,我們會(huì)提供更多的關(guān)于player狀態(tài)的信息) 當(dāng)player關(guān)閉時(shí),則會(huì)拋出關(guān)閉事件(controllerclosedevents)。當(dāng)一個(gè)player不再可用時(shí),拋出 controllerclosedevent. controllererrorevent(控制器錯(cuò)誤事件)則是關(guān)閉事件的一個(gè)特例。我們寫程序時(shí),通過(guò)監(jiān)聽控制器錯(cuò)誤事件,可以對(duì)player故障作出響應(yīng), 4.4程序流程圖進(jìn)行相關(guān)的組件添加,關(guān)聯(lián),貼圖等初始化工作界面

14、級(jí)相關(guān)組件設(shè)置與初始化方法:setcomponentproperty()list中右擊鼠標(biāo)事件處理,彈出選擇操作菜單:mousepressed();單擊list中從列表刪除事件:menuitem_delete.addmouselistener();list中雙擊鼠標(biāo)事件處理,開始播放選中文件:mouseclicked();list列表框中鼠標(biāo)事件監(jiān)聽及處理方法:addplaylistlistener()單擊list中清除播放列表事件:menuitem_deleteall.addmouselistener();左鍵單擊播放暫停按鈕事件處理:but_play.addactionlistener()

15、;界面上控制按鈕單擊事件監(jiān)聽及處理方法:addplaybottonlistener()左鍵單擊上一個(gè)按鈕事件處理:but_prior.addactionlistener();左鍵單擊停止按鈕事件處理:but_stop.addactionlistener();左鍵單擊下一個(gè)按鈕事件處理:but_next.addactionlistener();左鍵單擊快進(jìn)按鈕事件處理:but_quickforward.addactionlistener();左鍵單擊快退按鈕事件處理:but_quickback.addactionlistener();左鍵單擊文件按鈕事件處理:file.addmouseliste

16、ner();左鍵單擊單曲播放按鈕事件處理:single_play.addmouselistener();構(gòu)造函數(shù)調(diào)用成員方法開始:對(duì)象實(shí)例化左鍵單擊循環(huán)播放按鈕事件處理: loop_play.addmouselistener();左鍵單擊單曲循環(huán)按鈕事件處理:single_loop.addmouselistener();左鍵單擊隨機(jī)播放按鈕事件處理: random_play.addmouselistener();對(duì)菜單條的鼠標(biāo)事件監(jiān)聽及處理方法:addplaymenulistener()左鍵單擊停止按鈕事件處理:stop.addactionlistener();左鍵單擊播放暫停按鈕事件處理:p

17、layorpause.addactionlistener();左鍵單擊打開按鈕事件處理:open.addactionlistener();左鍵單擊退出按鈕事件處理:exit.addactionlistener();左鍵單擊關(guān)于按鈕事件處理:about.addactionlistener();左鍵單擊幫助按鈕事件處理:help_.addactionlistener();單擊播放暫停按鈕事件處理:menuitem_play.addactionlistener();單擊停止按鈕事件處理:menuitem_stop.addactionlistener();對(duì)播放界面上播放音頻時(shí)右擊事件監(jiān)聽及處理方法:

18、addrightclicklistener()單擊快進(jìn)按鈕事件處理:menuitem_skinforward.addactionlistener();單擊快退按鈕事件處理:menuitem_rewind.addactionlistener();單擊退出按鈕事件處理:menuitem_exit.addactionlistener();對(duì)播放音頻時(shí)改變窗體大小事件監(jiān)聽及處理方法:container.addcompnentlister();對(duì)用戶拖動(dòng)進(jìn)度條事件監(jiān)聽及處理方法:jslider_progress.addmouseliatener();startplayer(string medialoc

19、ation);初始化播放器,準(zhǔn)備開始播放視頻文件:一個(gè)內(nèi)部類進(jìn)行音頻文件的相關(guān)操作:class playereventhandler extends controlleradapter ;第五章 調(diào)試與測(cè)試:5.1調(diào)試:調(diào)試要根據(jù)eclipse中出錯(cuò)的信息以及所導(dǎo)入的javadoc文檔還有一些快捷鍵進(jìn)行快速調(diào)試,通過(guò)eclipse運(yùn)行平臺(tái)自帶的runjava application進(jìn)行運(yùn)行程序。5.2 測(cè)試:測(cè)試過(guò)程程中遇到問(wèn)題:(1)某些用到的類不熟悉,需要查找api (2)沒法運(yùn)行程序,jmf包如何導(dǎo)入及使用。5.3實(shí)驗(yàn)結(jié)果能夠?qū)崿F(xiàn)所要求的所有功能,即能夠正確的播放視頻文件,能夠進(jìn)行播放文

20、件的選擇,文件列表框中陳列選擇的視頻文件,能夠控制視頻的播放,退出,停止,快進(jìn),快退,下一個(gè),上一個(gè),音量的控制,靜音控制,全屏選擇,任意改變播放視頻界面大小等功能。運(yùn)行成功效果如圖:5.4 總結(jié)分析可以說(shuō)這么說(shuō),本次課程設(shè)計(jì)綜合考察了我們對(duì)java程序設(shè)計(jì)知識(shí)的掌握熟練程度和實(shí)際運(yùn)用能力。其間,涉及到了java 中的絕大多數(shù)的知識(shí)點(diǎn),如java圖形用戶界面設(shè)計(jì)、java的異常處理機(jī)制、java中的多線程程序設(shè)計(jì)、java輸入輸出流等。當(dāng)然,這次實(shí)驗(yàn)中最重要的還是通過(guò)設(shè)計(jì)一個(gè)視頻播放器來(lái)對(duì)java media frame有了深層次的掌握和理解,并能夠進(jìn)行實(shí)際的應(yīng)用。程序?qū)崿F(xiàn)的關(guān)鍵在于功能的合理

21、劃分以及各個(gè)包或者類之間的通訊問(wèn)題,只要分析清楚這兩點(diǎn),剩下的就是按部就班的寫代碼了。所以設(shè)計(jì)是關(guān)鍵。功能實(shí)現(xiàn)了,再就是如何對(duì)程序進(jìn)行性能優(yōu)化的問(wèn)題。把公用的部分用單獨(dú)的類或者是獨(dú)立的函數(shù)來(lái)實(shí)現(xiàn)就可以大大簡(jiǎn)化代碼的重復(fù),對(duì)程序的理解也有很好的改進(jìn)。學(xué)習(xí)java,一定要循序漸進(jìn),要一步一步地進(jìn)行;總之,作為一門程序設(shè)計(jì)語(yǔ)言,java 的學(xué)習(xí)務(wù)必要做到多看多寫多想多請(qǐng)教。多看,看高手、大師的程序,借鑒其解題思路和程序架構(gòu);多寫,學(xué)習(xí)程序設(shè)計(jì)很重要的就是要自己親自動(dòng)手寫代碼,切忌犯眼高手低的弊病,而且這樣記憶非常深刻;多想,程序調(diào)試中出現(xiàn)一些“莫明其妙”的問(wèn)題,為什么會(huì)這樣而不是那樣;多請(qǐng)教:程序設(shè)

22、計(jì)說(shuō)到底是要徹底搞清設(shè)計(jì)該語(yǔ)言的人的思想,遇到問(wèn)題想不通應(yīng)該請(qǐng)教同學(xué)、老師等。這樣可達(dá)到事半功倍的目的。參考資料java程序設(shè)計(jì)之網(wǎng)絡(luò)編程, 李芝興編,清華大學(xué)出版社,出版時(shí)間2006年3月(美)cay s.horstmann,gary cornell編,java2 核心技術(shù)第6版:基礎(chǔ)知識(shí),機(jī)械工業(yè)出版社,出版時(shí)間 2003年10月(美)bruce eckel編,java編程思想第2版,機(jī)械工業(yè)出版社,出版時(shí)間2002年9月jmf入門指南,網(wǎng)絡(luò)下載。1java課程設(shè)計(jì)黃明 梁旭 周紹斌編著,電子工業(yè)出版社出版.2java課程設(shè)計(jì)案例精編黃曉東編著,中國(guó)水利水電出版社出版.3java程序設(shè)計(jì)實(shí)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論