音樂(lè)播放器畢業(yè)設(shè)計(jì)_第1頁(yè)
音樂(lè)播放器畢業(yè)設(shè)計(jì)_第2頁(yè)
音樂(lè)播放器畢業(yè)設(shè)計(jì)_第3頁(yè)
音樂(lè)播放器畢業(yè)設(shè)計(jì)_第4頁(yè)
音樂(lè)播放器畢業(yè)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩34頁(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、文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word 版本可編輯.歡迎下載支持摘要在信息, 技術(shù)高速發(fā)展的今天, 多媒體技術(shù)也越來(lái)越受到人們的重視。 文章對(duì)目前使用較多的音樂(lè)播放器作出較詳細(xì)的比較。 通過(guò)閱讀多張文獻(xiàn), 分析了一些音樂(lè)播放器的功能并考慮了怎樣能實(shí)現(xiàn)支持更多格式的音樂(lè)文件, 怎樣能滿足使用者對(duì)播放器的需求。本文主要介紹了一個(gè)基于java applet 來(lái)實(shí)現(xiàn)的音樂(lè)播放器的設(shè)計(jì)。并對(duì)系統(tǒng)開(kāi)發(fā)中涉及到的關(guān)鍵技術(shù)作了探討,簡(jiǎn)要分析介紹了 java 技術(shù)和 applet 的工作原理,最后說(shuō)明系統(tǒng)需要實(shí)現(xiàn)的功能。音樂(lè)是一種聲音符號(hào), 表達(dá)人的思想感情。 是人們思想的載體之一。 音樂(lè)是有目的和內(nèi)涵的,其中隱

2、含了作者的生活體驗(yàn),思想情懷。一款好的 pc 音樂(lè)播放器不僅能夠提供好的音樂(lè)播放效果,更能夠?yàn)橛脩籼峁┓奖愕牟僮鳌1驹O(shè)計(jì)利用 java 語(yǔ)言和 eclipse 編輯工具對(duì)播放器進(jìn)行編寫(xiě)。同時(shí)給出了詳細(xì)的系統(tǒng)設(shè)計(jì)過(guò)程、 部分界面圖及主要功能運(yùn)行流程圖, 本文還對(duì)開(kāi)發(fā)過(guò)程中遇到的問(wèn)題和解決方法進(jìn)行了詳細(xì)的討論, 該音樂(lè)播放器集播放、 暫停、 停止、 快進(jìn)、 快退、下一曲、上一曲、音量調(diào)節(jié)等功能與一體,性能良好。該播放器支持mp3、 wa、v mp3和 aiff 等音頻格式。 在開(kāi)發(fā)的過(guò)程中采用瀑布模型。 第一階段首先對(duì)項(xiàng)目進(jìn)行全面、仔細(xì)的需求分析, 并準(zhǔn)確做出項(xiàng)目進(jìn)度安排, 明確每個(gè)階段的任務(wù);

3、第二階段是進(jìn)行項(xiàng)目分模塊編碼;第三階段對(duì)項(xiàng)目進(jìn)行全面的測(cè)試和系統(tǒng)集成測(cè)試。關(guān)鍵詞 : java;eclipse ; 模塊化; applet ;i文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持abstractin the information, the rapid development of technology today,the multimedia technology is becoming more and more attention. this paper makes comparison of the detail

4、to the current use of more music player. by reading a plurality ofliterature, analysis of some function of music player and consider how to achieve the support more format music files,how to meet the needs of users of the player. this paper mainly introduces the design of a java based applet to achi

5、eve music player. and the key technologies involved in the system development are discussed and analyzed brieflyintroduces the work principle of java technology and applet,finally indicated that the system needs to realize the function.the music is a sound symbolic expressing the mood and thinking.

6、it is the carrier of people's thinking. music is the purpose and content, which implied the au thor's life experiences and feelings. a good pc music player can not only provide g ood music playing effect, but also provide users with convenient operation.the player is using java language and

7、eclipse editing tools. giving a detailed s ystem design process, part of the interface map and run flow chart of the main fun ction, this article discussed in detail on problems and solution method in the devel opment process. the music player set to play, pause, stop, fast forward, rewind, a nd the

8、 next one, on a volume adjustment functions with one good performance. th e player supports mp3, wav, mp3, aiff, etc. audio formats. the model in the dev elopment process is waterfall model. the first phase is the project of comprehensi ve and careful needs analysis, accurately making the project sc

9、hedule and clearin g each stage of the task. the second phase of the project is sub-module coding. t he third stage, the project testing and system integration testing.key words: java ; eclipse ; modularization ; applet ;目錄畢業(yè)論文(設(shè)計(jì))誠(chéng)信承諾書(shū) 錯(cuò)誤!未定義書(shū)簽。四川科技職業(yè)學(xué)院畢業(yè)論文評(píng)審表 錯(cuò)誤!未定義書(shū)簽。四川科技職業(yè)學(xué)院畢業(yè)論文評(píng)審表 四川科技職業(yè)學(xué)院畢業(yè)設(shè)計(jì)(

10、論文)任務(wù)書(shū)第一章 緒論1.1 音樂(lè)播放器的定義1.2 軟件開(kāi)發(fā)背景及意義 1.3 發(fā)展現(xiàn)狀及趨勢(shì)第二章相關(guān)技術(shù)簡(jiǎn)介2.1 java技術(shù)簡(jiǎn)介2.2 jmf媒體框架技術(shù) 2.3 jdk 技術(shù)第三章系統(tǒng)分析3.1 功能需求誤誤誤錯(cuò)錯(cuò)錯(cuò)誤誤誤誤誤錯(cuò)錯(cuò)錯(cuò)錯(cuò)錯(cuò)誤誤誤錯(cuò)錯(cuò)錯(cuò)3.2 運(yùn)行及其它需求分析.3.3 可行性分析3.3.1 經(jīng)濟(jì)及技術(shù)可行性3.3.2 運(yùn)行及法律可行性4.1 軟件結(jié)設(shè)計(jì)4.2 界面功能模塊設(shè)計(jì).第五章播放器詳細(xì)設(shè)計(jì)5.1文件菜單詳細(xì)設(shè)計(jì).錯(cuò)誤 錯(cuò)誤 錯(cuò)誤 錯(cuò)誤 錯(cuò)誤 錯(cuò)誤 錯(cuò)誤 錯(cuò)誤未7e義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未

11、定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。 未定義書(shū)簽。1.1.2 添加音樂(lè)文件夾的功酢實(shí)現(xiàn) 錯(cuò)誤!未定義書(shū)簽。1.1.3 1艮出功酢實(shí)現(xiàn)錯(cuò)誤!未定義書(shū)簽。5.2 播放菜單詳細(xì)設(shè)計(jì)錯(cuò)誤!未定義書(shū)簽。5.2.1 播放/暫停功能實(shí)現(xiàn) 錯(cuò)誤!未定義書(shū)簽。5.2.2 停1上功能實(shí)現(xiàn)錯(cuò)誤!未定義書(shū)簽。5.2.3 音樂(lè)魔方實(shí)現(xiàn)錯(cuò)誤!未定義書(shū)簽。5.2.4 播放模式功能實(shí)現(xiàn)錯(cuò)誤!未定義書(shū)簽。5.2.5 歌詞背景功能實(shí)現(xiàn) 錯(cuò)誤!未定義書(shū)簽。5.3

12、皮膚功能詳細(xì)設(shè)計(jì)錯(cuò)誤!未定義書(shū)簽。5.4 播放按鈕詳細(xì)設(shè)計(jì)錯(cuò)誤!未定義書(shū)簽。5.5 5歌詞同力詳細(xì)設(shè)計(jì) 錯(cuò)誤!未定文書(shū)簽。錯(cuò)誤錯(cuò)誤錯(cuò)誤未定義書(shū)簽。未定義書(shū)簽。未定義書(shū)簽。結(jié)論. 致謝. 參考文獻(xiàn)iii文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.歡迎下載支持.第一章緒論隨著計(jì)算機(jī)和多媒體技術(shù)的不斷發(fā)展以及個(gè)人計(jì)算機(jī)的普及,各種各樣的媒體文 件,媒體播放器層出不窮,而 mp3(mpeg audio layer3)格式化以及體積小、音質(zhì)也 有保證的特點(diǎn)成為使用最為廣泛的音頻格式,得到了絕大多數(shù)軟件和硬件媒體播放器 的支持,同時(shí) wav格式作為無(wú)損的音

13、頻格式也獨(dú)樹(shù)一幟。如今,軟件市場(chǎng)上的媒體 播放器百花齊放,如:mediaplayer,酷我音樂(lè)盒,千千靜聽(tīng)等。高音質(zhì)播放器和低內(nèi) 存消耗是各種媒體播放器所最求的目標(biāo)。1.1 音樂(lè)播放器的定義隨著個(gè)人電腦的普及,及多媒體信息的傳播和應(yīng)用已經(jīng)深入我們的生活中的各個(gè) 方面,其中數(shù)字音頻憑借著其中占用存儲(chǔ)空間小,聲音質(zhì)量高的特點(diǎn)風(fēng)靡全球,傳統(tǒng)磁帶盒cd所統(tǒng)治的半壁江山已經(jīng)成為了數(shù)字音頻的天下。本音頻播放軟件采用java語(yǔ)言編寫(xiě),旨在利用java的平臺(tái)無(wú)關(guān)性特點(diǎn)做出一 款通用性強(qiáng),占用空間少卻五臟六腑俱全的音頻播放器。1.2 軟件開(kāi)發(fā)背景及意義欣賞美妙的音樂(lè)是我們每個(gè)人在學(xué)習(xí)工作之余都會(huì)做的事,面對(duì)市場(chǎng)

14、上和網(wǎng)絡(luò)上 各種花樣繁多的播放器,他們不但用起來(lái)感到得心應(yīng)手,而且各種功能操作非常方便。 我們都用過(guò)“千千靜聽(tīng)”,“酷狗音樂(lè)盒”,“windows media player”等非常優(yōu)秀的播 放器,但是在其使用的過(guò)程中總有些瑕疵。并且這些公司沒(méi)有開(kāi)放它們的源代碼。 我設(shè)計(jì)的這個(gè)“基于java的音樂(lè)播放器”除了能夠播放一些常見(jiàn)的音頻格式外更加易 于操作和使用。此軟件具有一般播放器的常用功能,界面沿用了標(biāo)準(zhǔn)的windows窗口,主窗口的功能有對(duì)要播放文件的各種控制,所播放曲目的名稱(chēng),通過(guò)主窗口能有選擇的播放單個(gè)文件,單次播放和循環(huán)播放目錄表中的文件。程序的開(kāi)發(fā)環(huán)境是jdk, 操作系統(tǒng)是 window

15、s xp,用到的主要技術(shù)為java語(yǔ)言,eclipse編輯軟件。本次畢業(yè)設(shè)計(jì)的意義在于結(jié)合 java語(yǔ)言提供的先進(jìn)的思想和多樣的媒體控制手段,結(jié)合用戶使用音樂(lè)播放器的習(xí)慣和對(duì)媒體播放器的要求,設(shè)計(jì)了一款界面清楚明了,操作簡(jiǎn)單實(shí)效,可以實(shí)現(xiàn)在播放列表中可以加載一個(gè)或者多個(gè)多媒體文件;自動(dòng)連續(xù)播放多個(gè)多媒體文件;用戶能隨意改變播放順序;在下次打開(kāi)播放器時(shí),能夠自 動(dòng)加載上次的播放列表;在播放列表的多媒體文件播放完后可以選擇自動(dòng)關(guān)閉播放器 或者循環(huán)播放等功能的媒體播放器。1.3 發(fā)展現(xiàn)狀及趨勢(shì)音樂(lè)播放器的設(shè)計(jì)是一門(mén)集計(jì)算機(jī)技術(shù)和數(shù)字多媒體技術(shù)于一體的綜合設(shè)計(jì)。隨著中國(guó)計(jì)算機(jī)技術(shù)、寬帶網(wǎng)絡(luò)技術(shù)的發(fā)展,

16、越來(lái)越多的人開(kāi)始重視多媒體播放器的發(fā) 展與應(yīng)用。在當(dāng)今信息社會(huì)以多媒體為特征的信息技術(shù)和信息產(chǎn)業(yè)的發(fā)展及應(yīng)用對(duì)人 類(lèi)社會(huì)產(chǎn)生的影響和作用愈來(lái)愈明顯, 愈來(lái)愈重要。而音樂(lè)作為多媒體中的一個(gè)重要 組成部分能改變信息的包裝,實(shí)現(xiàn)知識(shí)信息數(shù)字化,為人們獲得知識(shí)信息提供極大的 方便和無(wú)窮的樂(lè)趣。友善的人機(jī)界面、多種多樣的多媒體教學(xué)軟件、誘人的電子游藝 節(jié)目、身臨其境的多媒體導(dǎo)購(gòu)系統(tǒng)、五花八門(mén)的信息家電和高效方便的網(wǎng)上查詢(xún)等等, 無(wú)不滲透著多媒體的作用,它引導(dǎo)人們進(jìn)入了一個(gè)有聲有色的世界。同時(shí),多媒體的 發(fā)展和應(yīng)用,極大地推動(dòng)了各行各業(yè)的相互滲透和飛速發(fā)展,大大改變了人類(lèi)社會(huì)的 工作環(huán)境和生活方式??珊敛?/p>

17、夸張地說(shuō),多媒體產(chǎn)業(yè)的形成和發(fā)展,不僅引起了計(jì)算 機(jī)工業(yè)的一次革命,也正在深刻地影響人類(lèi)社會(huì)發(fā)生巨大的變革。多媒體技術(shù)的發(fā)展在很大程度上依靠于多媒體軟件開(kāi)發(fā)的水平0多媒體技術(shù)是當(dāng)今信息技術(shù)領(lǐng)域發(fā)展最快、最活躍的技術(shù),是新一代電子技術(shù)發(fā) 展和競(jìng)爭(zhēng)的焦點(diǎn)。多媒體技術(shù)融計(jì)算機(jī)、聲音、文本、圖像、動(dòng)畫(huà)、視頻和通信等多 種功能于一體,借助日益普及的高速信息網(wǎng),可實(shí)現(xiàn)計(jì)算機(jī)的全球聯(lián)網(wǎng)和信息資源共 享,因此被廣泛應(yīng)用在咨詢(xún)服務(wù)、圖書(shū)、教育、通信、軍事、金融、醫(yī)療等諸多行業(yè), 并正潛移默化地改變著我們生活的面貌。人類(lèi)社會(huì)逐漸進(jìn)入信息化時(shí)代,社會(huì)分工越來(lái)越細(xì),人際交往越來(lái)越頻繁,群體 性、交互性、分布性和協(xié)同性

18、將成為人們生活方式和勞動(dòng)方式的基本特征,其間大多數(shù)工作都需要群體的努力才能完成。但在現(xiàn)實(shí)生活中影響和阻礙上述工作方式的因素 太多,如打電話時(shí)對(duì)方卻不在。即使電話交流也只能通過(guò)聲音,而很難看見(jiàn)一些重要 的圖紙資料,要面對(duì)面的交流討論,又需要費(fèi)時(shí)的長(zhǎng)途旅行和昂貴的差旅費(fèi)用, 這種 方式造成了效率低、費(fèi)時(shí)長(zhǎng)、開(kāi)銷(xiāo)大的缺點(diǎn)。今天,隨著多媒體計(jì)算機(jī)技術(shù)和通信技 術(shù)的發(fā)展,兩者相結(jié)合形成的多媒體通信和分布式多媒體信息系統(tǒng)較好地解決上述問(wèn) 題。隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展和internet的逐漸普及,人們對(duì)網(wǎng)絡(luò)產(chǎn)品需求也不斷增 長(zhǎng)。如今流行的網(wǎng)絡(luò)音樂(lè)播放器雖然很多,但都或多或少存在一些缺陷,比如:沒(méi)有 記憶的功能

19、;下次播放的時(shí)候不能從上次離開(kāi)的曲目開(kāi)始;沒(méi)有身份認(rèn)證功能;不能有效的保護(hù)媒體播放器里面的歌曲專(zhuān)有性;功能組合與用戶的習(xí)慣相違背;界面太復(fù) 雜以及操作太難等。隨著人們對(duì)娛樂(lè)要求的提高,一款別致的、貼近用戶操作習(xí)慣的 音樂(lè)播放器非常值得去研究和開(kāi)發(fā)。第二章相關(guān)技術(shù)簡(jiǎn)介2.1 java技術(shù)簡(jiǎn)介java語(yǔ)言具有許多特點(diǎn),當(dāng)然也是它的優(yōu)點(diǎn),即簡(jiǎn)單性、分布性、高安全性、面向 對(duì)象、與結(jié)構(gòu)的無(wú)關(guān)性、可移植性、多線程及動(dòng)態(tài)性等等。簡(jiǎn)單性:java語(yǔ)言是一種面向?qū)ο蟮恼Z(yǔ)言,如果你對(duì)面向?qū)ο蟮木幊痰幕靖拍钣辛艘欢ǖ牧私?,就可以比較快地學(xué)會(huì)java語(yǔ)言編程。java力圖在功能齊備的基礎(chǔ)上不增加所謂的超級(jí)特點(diǎn),它

20、毫 不客氣地取消了指針、運(yùn)算符重載和多重繼承的概念,以一種明晰的面向?qū)ο蟮姆椒◣椭脩舯磉_(dá)他們的想法。java是一種簡(jiǎn)單的語(yǔ)言。java取消了其它的許多編程語(yǔ)言中十分繁瑣的和難以 理解的內(nèi)容,例如c/c+中的指針,c +中類(lèi)的多重繼承等。java語(yǔ)言在外觀上讓 大多數(shù)程序員都感到很熟悉,這樣程序員不需要經(jīng)過(guò)長(zhǎng)時(shí)間訓(xùn)練就能夠?qū)W會(huì)使用這種 新型的程序開(kāi)發(fā)工具。java要求的基本解釋器約為40kb,若加上基本的程序庫(kù),約 為215kb。由于java程序很小,因此在小型機(jī)上 java程序也能夠很好地執(zhí)行。java是一種面向?qū)ο蟮恼Z(yǔ)言。這里的“對(duì)象”是指應(yīng)用程序的數(shù)據(jù)及其操作方法。 java程序的設(shè)計(jì)思

21、想不同于c語(yǔ)言基于過(guò)程的程序設(shè)計(jì)思想。 設(shè)計(jì)面向?qū)ο蟮某绦蛐?要將編程重點(diǎn)放在資料和接口上。java是一種分布式的語(yǔ)言。java有一個(gè)很周全的程序庫(kù),且很容易與 http和tcp/ip通信協(xié)議相配合。java應(yīng)用程序能在網(wǎng)絡(luò)上開(kāi)啟并連結(jié)使用對(duì)象,就如同透 過(guò)url鏈接使用一個(gè)本地文件系統(tǒng)。利用java來(lái)開(kāi)發(fā)分布式的網(wǎng)絡(luò)程序是java的一 個(gè)重要應(yīng)用。2.2 jmf媒體框架技術(shù)jmf意為java媒體框架(jmf)。該核心框架支持不同媒體(如:音頻輸出和視 頻輸出)問(wèn)的時(shí)鐘同步。它是一個(gè)標(biāo)準(zhǔn)的擴(kuò)展框架,允許用戶制作純音頻流和視頻流。jmf實(shí)際上是java的一個(gè)類(lèi)包。jmf ,從而擴(kuò)展了 java平

22、臺(tái)的功能。這些功能 包括:媒體捕獲、壓縮、流轉(zhuǎn)、回放,以及對(duì)各種主要媒體形式和編碼的支持,如m-jpeg、h.263、mp3、rtp/rtsp秋時(shí)傳送協(xié)議和實(shí)時(shí)流轉(zhuǎn)協(xié)議 卜macromedias flashi ibm 的 hotmedia 和 beatniks 的 rich media format (rmf)等。jmf ,如 quicktime、 microsofts avi和mpeg-1等。止匕外,jmf ,可使開(kāi)發(fā)人員靈活采用各種媒體回放、 捕獲組件,或采用他們自己的定制的內(nèi)插組件。sun以四種不同的專(zhuān)用版本提供jmf ,滿足專(zhuān)業(yè)開(kāi)發(fā)人員的各類(lèi)需求,第一個(gè) 是一個(gè)輕便型版本,它完全采用

23、java語(yǔ)言編寫(xiě),適用于任何java兼容系統(tǒng)。止匕外, 開(kāi)發(fā)人員還可選 擇分別適用于solaris、windows或linux等操作系統(tǒng)的性能最優(yōu)化 軟件包,以提高性能和能力。jmf media系列軟件的一部分。java media系列軟件包括java 3d> java 2d> java sound 和 java advanced imaging 等 api。采用各種 java media api,軟件開(kāi)發(fā)商人員 就能容易、快速地為他們已有的各種應(yīng)用程序和客戶端java小程序增添豐富的媒體功能,如流式視頻、3d圖像和影像處理等。就是 說(shuō),各種java media api發(fā)揮了 ja

24、va 平臺(tái)的固有優(yōu)勢(shì),將”編寫(xiě)一次,到處運(yùn)行”的能力擴(kuò)展到了圖像、影像和數(shù)字媒體等 各種應(yīng)用領(lǐng)域,從而大大縮減了開(kāi)發(fā)時(shí)間和降低了開(kāi)發(fā)成本。2.3 jdk技術(shù)java編譯器將java源代碼文件編譯成可執(zhí)行的java字節(jié)碼。java源代碼文件 的擴(kuò)展名為.java, java編譯器把這種擴(kuò)展名的文件編譯成擴(kuò)展名為.class的文件。源 文件中的每個(gè)類(lèi)在編譯后都將產(chǎn)生一個(gè) class文件,這意味一個(gè)java源代碼文件可能 編譯生成多個(gè)class文件。java解釋器對(duì)編譯生成的字節(jié)碼格式的可執(zhí)行程序的運(yùn)行提供支持,它是運(yùn)行非圖形java程序的命令行工具。它是java applet的簡(jiǎn)單測(cè)試工具,可使用

25、它來(lái)測(cè)試 java applet程序,而不需要 www瀏覽器的支持。jdk(java development kit)是 sun microsystems針對(duì) java程序員開(kāi)發(fā)的產(chǎn)品。自 從java推出以來(lái),jdk已經(jīng)成為使用最廣泛的 java sdk (software development kit)。jdk 是整個(gè) java的核心,包括了 java運(yùn)行環(huán)境(java runtime environment , 一 堆java工具和java基礎(chǔ)的類(lèi)庫(kù)(rt.jar)。不論什么java應(yīng)用服務(wù)器實(shí)質(zhì)都是內(nèi)置了某 個(gè)版本的jdk。因此掌握jdk是學(xué)好java的第一步。最主流的jdk是sun公

26、司發(fā)布 的jdk,除了 sun之外,還有很多公司和組織都開(kāi)發(fā)了自己的jdk,例如舊m公司開(kāi)發(fā)的jdk,bea公司的jrocket,還有g(shù)nu組織開(kāi)發(fā)的jdk等等。其中 舊m的jdk 包含的jvm (java virtual machine)運(yùn)行效率要比sun jdk包含的jvm高出許多。 而專(zhuān)門(mén)運(yùn)行在x86平臺(tái)的jrocket在服務(wù)端運(yùn)行效率也要比sun jdk好很多。但不管 怎么說(shuō),我們還是需要先把sun jdk掌握好。從sun的jdk5.0開(kāi)始,提供了泛型等非常實(shí)用的功能,其版本信息也不再延續(xù) 以前的1.2, 1.3, 1.4,而是變成了 5.0,6.0 了。從6.0開(kāi)始,具運(yùn)行效率得到了

27、非常大 的提高,尤其是在桌面應(yīng)用方面。jdk本身使用了 java語(yǔ)言編寫(xiě),在我們下載的安 裝包里,有一個(gè)src.zip,里面就是jdk的源代碼。第三章系統(tǒng)分析3.1 功能需求根據(jù)項(xiàng)目的目標(biāo),我們可獲得項(xiàng)目系統(tǒng)的基本需求,以下從不同的角度來(lái)描述系 統(tǒng)的需求,并且使用用例圖來(lái)描述,系統(tǒng)的功能需求,我們分成以下幾部分來(lái)概括, 即播放器的基本控制需要。在播放器正在運(yùn)行時(shí),用戶選擇一首歌曲后單擊“播放”按鈕,播放器將播放選 中的播放列表中的音樂(lè),并同時(shí)顯示當(dāng)前進(jìn)度;當(dāng)歌曲未暫停或停止時(shí),用戶單擊“暫 停”按鈕,播放器將進(jìn)入暫停狀態(tài);播放器正在播放或暫停時(shí),用戶單擊“停止”按鈕,播放器將停止播放或暫停時(shí),

28、用戶點(diǎn)擊“上一首”或者“下一首”按鈕,播放器將播放上一首或下一首歌曲。從時(shí)序圖3-2中可以看出播放器運(yùn)行原理和調(diào)用過(guò)程。播放列表播放界面播放方法選擇 播播放界面放歌曲圖3-23.2 運(yùn)行及其它需求分析硬件條件:賽揚(yáng)cpu、1g內(nèi)存、10g硬盤(pán)以上的pc機(jī)。軟件條件:windows xp、eclipse 3.7.2、本軟件對(duì)其它軟件幾乎沒(méi)有依賴(lài)性,程序健壯性較好有較好的可維護(hù)性、可靠性、 可理解性、效率。易于用戶理解和操作。可維護(hù)性包括了可讀性、可測(cè)試性等含義??煽啃酝ǔ0ㄕ_性和健壯性。 開(kāi)發(fā)過(guò)程中,在各種矛盾的目標(biāo)之間作權(quán)衡,并在 一定的限制的條件下(經(jīng)費(fèi)、時(shí)間、可用的軟、硬件資源等),使

29、上述各方面最大限度的得到滿足。3.3 可行性分析3.3.1 經(jīng)濟(jì)及技術(shù)可行性經(jīng)濟(jì)可行性研究是對(duì)組織的經(jīng)濟(jì)現(xiàn)狀和投資能力進(jìn)行分析,對(duì)系統(tǒng)建設(shè) 運(yùn)行和維護(hù)費(fèi)用進(jìn)行估算,對(duì)系統(tǒng)建成后可能取得的社會(huì)和經(jīng)濟(jì)效益進(jìn)行估計(jì)。由于本系統(tǒng)是作為畢業(yè)設(shè)計(jì)由我自己開(kāi)發(fā)的,在經(jīng)濟(jì)上的投入甚微,系統(tǒng)建成之后將為今 后播放音樂(lè)提供很大的方便,估算新系統(tǒng)的開(kāi)發(fā)費(fèi)用和今后的運(yùn)行、維護(hù)費(fèi)用,估計(jì) 新系統(tǒng)將獲得的效益,并將費(fèi)用與效益進(jìn)行比較,看是否有利。開(kāi)發(fā)、運(yùn)行和維護(hù)費(fèi)用主要包括:購(gòu)買(mǎi)和安裝設(shè)備的費(fèi)用:計(jì)算機(jī)硬件、系統(tǒng)軟 件、電源、空調(diào)等;軟件開(kāi)發(fā)費(fèi)用:若由實(shí)習(xí)單位的技術(shù)人員開(kāi)發(fā),則該項(xiàng)費(fèi)用可以 計(jì)入下面的人員費(fèi)用一項(xiàng);人員費(fèi)

30、用:系統(tǒng)開(kāi)發(fā)人員、操作人員和維護(hù)人員的工資、 培訓(xùn)費(fèi)用等;消耗品費(fèi)用:系統(tǒng)開(kāi)發(fā)所用材料、系統(tǒng)正常運(yùn)行所用消耗品,例如水、 電費(fèi)、打印紙、軟盤(pán)、色帶等開(kāi)支。結(jié)合該畢業(yè)設(shè)計(jì)的整個(gè)過(guò)程所有開(kāi)支都不大,所 以經(jīng)濟(jì)上是可行的。技術(shù)可行性要考慮現(xiàn)有的技術(shù)條件是否能夠順利完成開(kāi)發(fā)工作,軟硬件配置是否滿足開(kāi)發(fā)的需求等。該音樂(lè)播放器用的是 java語(yǔ)言開(kāi)發(fā)的,調(diào)試相對(duì)簡(jiǎn)單,當(dāng)前的 計(jì)算機(jī)硬件配置也完全能滿足開(kāi)發(fā)的需求,因此在技術(shù)上是絕對(duì)可行的。軟件方面: 用的是eclipse,它的速度快、可靠性能高、價(jià)格低,完全能滿足系統(tǒng)的需求。3.3.2 運(yùn)行及法律可行性對(duì)新軟件運(yùn)行后給現(xiàn)行系統(tǒng)帶來(lái)的影響 (包括組織機(jī)構(gòu)、管

31、理方式、工作環(huán)境等) 和后果進(jìn)行估計(jì)和評(píng)價(jià)。同時(shí)還應(yīng)考慮現(xiàn)有管理人員的培訓(xùn)、 補(bǔ)充,分析在給定時(shí)間 里能否完成預(yù)定的系統(tǒng)開(kāi)發(fā)任務(wù)等。 運(yùn)行可行性是對(duì)組織結(jié)構(gòu)的影響,現(xiàn)有人員和 機(jī)構(gòu)和環(huán)境對(duì)系統(tǒng)的適應(yīng)性及人員培訓(xùn)補(bǔ)充計(jì)劃的可行性。 當(dāng)前我國(guó)信息化技術(shù)已經(jīng) 相當(dāng)普及,各類(lèi)操作人員水平都有相當(dāng)?shù)母叨龋?所以在運(yùn)行上是可行性的。從時(shí)間上 看,時(shí)間上是有點(diǎn)緊,但通過(guò)一個(gè)多月的努力基本功能現(xiàn)在已經(jīng)基本實(shí)現(xiàn)。在法律可 行性上從以下幾點(diǎn)考慮:所有技術(shù)資料都為合法。 開(kāi)發(fā)過(guò)程中不存在知識(shí)產(chǎn)權(quán)問(wèn)題。未抄襲任何已存在的課程信息管理系統(tǒng),不存在侵犯版權(quán)問(wèn)題。 開(kāi)發(fā)過(guò)程中未涉及任何法律責(zé)任。綜上所述,本系統(tǒng)的開(kāi)發(fā)從技術(shù)

32、上、從經(jīng)濟(jì)上、從法律上都是完全可靠的。第四章軟件結(jié)構(gòu)及界面設(shè)計(jì)4.1 軟件結(jié)構(gòu)設(shè)計(jì)本軟件不僅要求功能完善,而且還要界面友好,因此,對(duì)于一個(gè)成功的軟件設(shè)計(jì), 功能模塊的設(shè)計(jì)是關(guān)鍵。在需求分析階段,搞清楚了軟件做什么”的問(wèn)題,形成了目標(biāo)軟件的邏輯模型?,F(xiàn)在我們所要做的就是要把軟件做什么”的邏輯模型變換為怎么做”的物理模型,即著手實(shí)現(xiàn)軟件的需求。我們需要描述的是系統(tǒng)的總的體系結(jié)構(gòu)。軟件的設(shè)計(jì)中最重要的就是軟件的模塊化。 模塊化是指解決一個(gè)復(fù)雜問(wèn)題時(shí)自頂 向下逐層把軟件系統(tǒng)劃分成若干個(gè)模塊的過(guò)程。每個(gè)模塊完成一個(gè)特定的功能,所有 的模塊按某種方法組織起來(lái),成為一個(gè)整體,完成整個(gè)系統(tǒng)所要求的功能。將系統(tǒng)

33、劃分為多個(gè)模塊是為了降低軟件系統(tǒng)的復(fù)雜性,提高可讀性、可維護(hù)性, 但模塊的劃分不能是任意的,應(yīng)盡量保持其獨(dú)立性。也就是說(shuō),每個(gè)模塊只完成系統(tǒng) 要求的獨(dú)立子功能,并且與其他模塊的聯(lián)系最少且接口簡(jiǎn)單, 即盡量做到高內(nèi)聚低耦 合,提高模塊的獨(dú)立性,為設(shè)計(jì)高質(zhì)量的軟件結(jié)構(gòu)奠定基礎(chǔ)。35文檔來(lái)源為:從網(wǎng)絡(luò)收集整理.word版本可編輯.主界面添加?播放列表jit播放?播放音樂(lè)程序結(jié)束l圖4-1音樂(lè)播放器系統(tǒng)流程圖4.2 界面功能模塊設(shè)計(jì)主界面功能如圖圖 4.2.1音樂(lè)播放器的界面有“文件”、“播放”、2個(gè)主菜單,其中“文件”菜單包含“打 開(kāi)文件“、“添加音樂(lè)文件夾”“退出系統(tǒng)”三個(gè)菜單項(xiàng),“播放”菜單里包

34、含“播放/ 暫?!薄巴V埂保耙魳?lè)魔方",“播放模式”,“播放背景”。菜單項(xiàng)如圖4-2所示。菜單 主要功能模塊如圖4.2.2菜單文件播放列表菜單添 加 音 樂(lè)添加音樂(lè)文件播放/ 暫停播 放/ 暫停列表菜單播 放刪 除清 空 列 表添 加音 樂(lè)添 加音 樂(lè)下圖是播放器主界面如圖3.4:圖 4.2.2圖3.4第五章播放器詳細(xì)設(shè)計(jì)播放器采用java為開(kāi)發(fā)語(yǔ)言,下面詳細(xì)介紹了系統(tǒng)各個(gè)模塊與功能的實(shí)現(xiàn)5.1。5.1 文件菜單詳細(xì)設(shè)計(jì)文件菜單只要包括:添加音樂(lè)文件,添加音樂(lè)文件夾,退出功能:如圖圖5.1/*打開(kāi)音樂(lè)文件*/public void openmusicfile() int selec

35、tstate = 0;file chooserfile = null;jfilechooser chooser = new jfilechooser();mp3filefilter mp3filefilter = new mp3filefilter();wavfilefilter wavfilefilter = new wa vfilefilter();chooser.setcurrentdirectory(new file(".");chooser.setdialogtitle(選擇音樂(lè)文件");chooser.setapprovebuttontext(確定”)

36、;chooser.setapprovebuttontooltiptext('選擇音樂(lè)文件");chooser.addchoosablefilefilter(wavfilefilter);chooser.addchoosablefilefilter(mp3filefilter);chooser.setfileselectionmode(jfilechooser.files_and_directories);/只選擇文件selectstate = chooser.showopendialog(this);if (selectstate = jfilechooser.approve

37、_option) chooserfile = chooser.getselectedfile();if (chooserfile.tostring().tolowercase().endswith(".mp3")| chooserfile.tostring().tolowercase().endswith(".wav") songinfo newsong = new songinfo(chooserfile.tostring();rightpanel.getinstance().addsongfiletolist(newsong);/監(jiān)聽(tīng)事件,通過(guò)判斷語(yǔ)

38、句判斷是否點(diǎn)擊了添加音樂(lè)文件的菜單,然后調(diào)用 openmusicfile();方法public void actionperformed(actionevent e) string action = e.getactioncommand();if ("添加音樂(lè)文件".equals(action) mini.openmusicfile();5.1.2添加音樂(lè)文件夾的功能實(shí)現(xiàn)*打開(kāi)音樂(lè)文件夾*/public void openmusicfolder() int selectstate = 0;file chooserfolder = null;jfilechooser choo

39、ser = new jfilechooser();chooser.setcurrentdirectory(new file(".");chooser.setdialogtitle1選擇音樂(lè)文件夾");chooser.setapprovebuttontext(確定”);chooser.setapprovebuttontooltiptext('選擇音樂(lè)文件夾");chooser.setfileselectionmode(jfilechooser.directories_only);/k 選擇文件夾selectstate = chooser.showo

40、pendialog(this);if (selectstate = jfilechooser.approve_option) chooserfolder = chooser.getselectedfile();string songpath口 = chooserfolder.list();int length = songpath.length;for (int i = 0; i < length; i+) if (songpathi.tolowercase().endswith(".mp3")| songpathi.tolowercase().endswith(&q

41、uot;.wav") songinfo newsong = new songinfo(chooserfolder +file.separator + songpathi);rightpanel.getinstance().addsongfiletolist(newsong);/判斷是否點(diǎn)擊了添加音樂(lè)文件夾,成立就調(diào)用openmusicfolder的方法public void actionperformed(actionevent e) string action = e.getactioncommand();if ("添加音樂(lè)文件".equals(action)

42、mini.openmusicfile(); else if ("添加音樂(lè)文件夾".equals(action) mini.openmusicfolder();5.1.3退出功能實(shí)現(xiàn)/在點(diǎn)擊時(shí)間監(jiān)聽(tīng)中判斷是否點(diǎn)擊的退出菜單,然后判斷歌曲是否關(guān)閉,沒(méi)有關(guān) 閉則先關(guān)閉歌曲再銷(xiāo)毀界面退出程序:一|public void actionperformed(actionevent e) string action = e.getactioncommand();if ("添加音樂(lè)文件".equals(action) mini.openmusicfile(); else

43、if ("添加音樂(lè)文件夾".equals(action) mini.openmusicfolder(); else if ("退 出".equals(action) if (player != null) player.close(); player = null;mini.dispose();config.getinstance().saveconfig();rightpanel.getinstance().saveplaylist();system.exit(0);5.2 播放菜單詳細(xì)設(shè)計(jì)播放菜單主要包括:播放/暫停,停止,音樂(lè)魔方,播放模式,歌詞背

44、景功能: 如圖5.2圖 播放/暫停功能實(shí)現(xiàn)/*開(kāi)始播放音樂(lè)*/public static void start() if (player != null && !nocanplaysong() player.getgaincontrol().setlevel(soundslider.getvalue() / 100.0f);setsoundstate(getsoundstate();player.start();/進(jìn)度條更新sliderupdatethread.initthread();sliderupdatethread.getthread().start()

45、;sliderupdatethread.resume();player.addcontrollerlistener(songcontrollistener.getinstance();playerstate = playerstate.play;psbutton.seticon(new icontool("images/pause.png").geticon();psbutton.seticonpath("images/pause.png");songnamelabel.settext(currentsong.getsongname();int inde

46、x = defaultsonginfo.indexof(currentsong);defaultsonglist.setselectedindex(index);lrcparse.getinstance().loadlrc();lrclabel.getinstance().refresh();playerinfolabel.getinstance().refresh();/*暫停音樂(lè)函數(shù)*/public static void pause() if (player != null) player.stop();playerstate = playerstate.pause;psbutton.s

47、eticon(new icontool("images/play.png").geticon();psbutton.seticonpath("images/play.png");playerinfolabel.getinstance().refresh();/在時(shí)間監(jiān)聽(tīng)中判斷是否點(diǎn)擊播放/暫停按鈕,并調(diào)用相應(yīng)方法播放,如果當(dāng)前狀 態(tài)為播放就暫停音樂(lè),如果狀態(tài)為暫?;蛲V咕筒シ乓魳?lè)。public void actionperformed(actionevent e) string action = e.getactioncommand();if (&quo

48、t;添加音樂(lè)文件".equals(action) mini.openmusicfile(); else if ("添加音樂(lè)文件夾".equals(action) mini.openmusicfolder(); else if ("退 出".equals(action) if (player != null) player.close(); player = null;mini.dispose();config.getinstance().saveconfig();rightpanel.getinstance().saveplaylist();s

49、ystem.exit(o); else if ("播放/暫?!?equals(action) && musicplayer.getplayerstate()= playerstate.play) musicplayer.pause(); else if ("播放/暫停”.equals(action) && musicplayer.getplayerstate()= playerstate.pause) musicplayer.start(); else if ("播放/暫?!?equals(action) && mu

50、sicplayer.getplayerstate()= playerstate.unrealized) musicplayer.initplayer(null);musicplayer.start();5.2.2停止功能實(shí)現(xiàn)*停止播放*/public static void stop() if (player != null) playerstate = playerstate.unrealized;psbutton.seticon(new icontool("images/play.png").geticon();psbutton.seticonpath("im

51、ages/play.png");sliderupdatethread.pause();timeslider.setvalue(0);timelabel.settext("00:00|" +formatutils.formattime(player.getduration().getseconds();player.close();playerinfolabel.getinstance().refresh();/判斷是否點(diǎn)擊停止菜單,并調(diào)用 stop ();方法 public void actionperformed(actionevent e) string ac

52、tion = e.getactioncommand();if ("添加音樂(lè)文件".equals(action) mini.openmusicfile();else if ("停 止 ".equals(action) musicplayer.stop();5.2.3音樂(lè)魔方實(shí)現(xiàn)音樂(lè)魔方只要是主界面的一個(gè)迷你模式,能夠?qū)崿F(xiàn)播放/暫停,快進(jìn)/快退,退出功能如圖:圖5.2.3/* 將image圖像轉(zhuǎn)換為shape圖形 * param img* param isfiltrate* return image圖像的shape圖形表示* author hexen*/pu

53、blic shape getimageshape(image img) arraylist<integer> x = new arraylist<integer>();arraylist<integer> y = new arraylist<integer>();int width = img.getwidth(null);/ 圖像寬度int height = img.getheight(null);/ 圖像高度/篩選像素/首先獲取圖像所有的像素信息pixelgrabber pgr = new pixelgrabber(img, 0, 0, -1

54、, -1, true);try pgr.grabpixels(); catch (interruptedexception ex) ex.getstacktrace();int pixels口 = (int口)pgr.getpixels();/循環(huán)像素for (int i = 0; i < pixels.length; i+) /篩選,將不透明的像素的坐標(biāo)加入到坐標(biāo)arraylist x和y中int alpha = getalpha(pixelsi);if (alpha = 0) continue; else x.add(i % width > 0 ? i % width - 1

55、: 0);y.add(i % width = 0 ? (i = 0 ? 0 : i / width - 1) : i / width);/建立圖像矩陣并初始化(0為透明,1為不透明)int口口 matrix = new intheightwidth;for (int i = 0; i < height; i+) for (int j = 0; j < width; j+) matrixij = 0;/導(dǎo)入坐標(biāo)arraylist中的不透明坐標(biāo)信息for (int c = 0; c < x.size(); c+) matrixy.get(c)x.get(c) = 1;/*逐一水平

56、“掃描”圖像矩陣的每一行,將不透明的像素生成為rectangle,再將每一行的rectangle通過(guò)area類(lèi)的rec對(duì)象進(jìn)行合并,*最后形成一個(gè)完整的shape圖形*/area rec = new area();int temp = 0;for (int i = 0; i < height; i+) for (int j = 0; j < width; j+) if (matrixij = 1) if (temp = 0)temp = j;else if (j = width) if (temp = 0) rectangle rectemp = new rectangle(j, i, 1, 1);rec.add(new area(rectemp); else rectangle rectemp = new rectangle(temp, i,j - temp, 1);rec.add(new area(rectemp);temp = 0; else if (temp != 0) rectangle rectemp = new rectangle(temp, i, j - temp,1);rec.add(new area(rectemp);tem

溫馨提示

  • 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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論