![](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/16/21/7033ceaa-ff99-4f44-b33c-de544d3d019c/7033ceaa-ff99-4f44-b33c-de544d3d019cpic.jpg)
![畢業(yè)設(shè)計論文 音樂播放器設(shè)計_第1頁](https://static.zsdocx.com/FlexPaper/FileRoot/2019-6/16/21/7033ceaa-ff99-4f44-b33c-de544d3d019c/7033ceaa-ff99-4f44-b33c-de544d3d019c1.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計(論文)</b></p><p><b> ( 2013屆)</b></p><p> 題 目 音樂播放系統(tǒng)設(shè)計 </p><p><b> 摘 要</b></p
2、><p> 音樂是一種聲音符號,表達人的思想感情。是人們思想的載體之一。音樂是有目的和內(nèi)涵的,其中隱含了作者的生活體驗,思想情懷。一款好的pc音樂播放器不僅能夠提供好的音樂播放效果,更能夠為用戶提供方便的操作。</p><p> 本設(shè)計利用java語言和eclipse 編輯工具對播放器進行編寫。同時給出了詳細的系統(tǒng)設(shè)計過程、部分界面圖及主要功能運行流程圖,本文還對開發(fā)過程中遇到的問題和解決
3、方法進行了詳細的討論,該音樂播放器集播放、暫停、停止、快進、快退、下一曲、上一曲、音量調(diào)節(jié)等功能與一體,性能良好。該播放器支持MP3、WAV、MP3和AIFF等音頻格式。在開發(fā)的過程中采用瀑布模型。第一階段首先對項目進行全面、仔細的需求分析,并準確做出項目進度安排,明確每個階段的任務(wù);第二階段是進行項目分模塊編碼;第三階段對項目進行全面的測試和系統(tǒng)集成測試。</p><p> 在本程序的開發(fā)上,因為JAVA的跨
4、平臺性,所以可供選擇的平臺有許多,使得在平臺的選擇面上有了更大的自主權(quán)。現(xiàn)在社會上使用最多的平臺是WINDOWS。所以該程序在WINDOWS平臺下開發(fā)。</p><p> 關(guān)鍵詞: Eclipse;播放器;音頻技術(shù)</p><p> The design of Music Player Base on Java</p><p><b> Abstra
5、ct</b></p><p> The music is a sound symbolic expressing the mood and thinking. It is the carrier of people's thinking. Music is the purpose and content, which implied the author's life experie
6、nces and feelings. A good pc music player can not only provide good music playing effect, but also provide users with convenient operation.</p><p> The player is using java language and eclipse editing tool
7、s. Giving a detailed system design process, part of the interface map and run flow chart of the main function, this article discussed in detail on problems and solution method in the development process. The music player
8、 set to play, pause, stop, fast forward, rewind, and the next one, on a volume adjustment functions with one good performance. The player supports MP3, WAV, MP3, AIFF, etc. audio formats. The model in the development pro
9、ce</p><p> The development of this program, there are many alternative platform, because JAVA cross platform, so have greater autonomy in the choice of platform. Now used on most platforms is the WINDOWS. T
10、herefore, the program is developing under the WINDOWS platform.</p><p> Keywords: Eclipse; Player; Audio technology</p><p><b> 目 錄</b></p><p> 摘 要- 1 -</p>
11、<p> Abstract- 2 -</p><p> 1 前言- 1 -</p><p> 1.1軟件開發(fā)背景及意義- 1 -</p><p> 1.2發(fā)展現(xiàn)狀及趨勢- 1 -</p><p> 1.3主要研究方法及過程- 2 -</p><p> 2 相關(guān)技術(shù)簡介- 3 -<
12、/p><p> 2.1 Java技術(shù)簡介- 3 -</p><p> 2.2 JavaSound技術(shù)- 3 -</p><p> 2.2.1 JavaSound 的體系結(jié)構(gòu)- 3 -</p><p> 2.2.2 JavaSound混頻原理- 4 -</p><p> 2.3 JDK技術(shù)- 5 -<
13、;/p><p> 3需求分析- 7 -</p><p> 3.1功能需求- 7 -</p><p> 3.1.1 播放器的基本控制需求- 7 -</p><p> 3.1.2功能需求分析- 7 -</p><p> 3.2 運行及其它需求分析- 8 -</p><p> 3.3
14、 可行性分析- 8 -</p><p> 3.3.1 經(jīng)濟及技術(shù)可行性- 8 -</p><p> 3.3.2 運行及法律可行性- 9 -</p><p> 4 軟件結(jié)構(gòu)及界面設(shè)計- 10 -</p><p> 4.1軟件結(jié)構(gòu)設(shè)計- 10 -</p><p> 4.2 GUI界面設(shè)計- 11 -&
15、lt;/p><p> 5詳細設(shè)計- 13 -</p><p> 5.1打開文件菜單下的詳細設(shè)計- 13 -</p><p> 5.1.1打開文件設(shè)計- 13 -</p><p> 5.1.2退出系統(tǒng)設(shè)計- 13 -</p><p> 5.2播放菜單下的詳細設(shè)計- 14 -</p><
16、p> 5.3顯示菜單下的詳細設(shè)計- 14 -</p><p> 5.4幫助菜單下的詳細設(shè)計- 15 -</p><p> 5.5播放列表的詳細設(shè)計- 16 -</p><p> 5.6播放按鈕的詳細設(shè)計- 17 -</p><p> 6結(jié)論- 19 -</p><p> 參考文獻- 20
17、-</p><p> 致 謝- 21 -</p><p><b> 1 前言</b></p><p> 1.1軟件開發(fā)背景及意義</p><p> 欣賞美妙的音樂是我們每個人在學(xué)習(xí)工作之余都會做的事,面對市場上和網(wǎng)絡(luò)上各種花樣繁多的播放器,他們不但用起來感到得心應(yīng)手,而且各種功能操作非常方便。我們都用過“千千
18、靜聽”,“酷狗音樂盒”,“Windows Media player”等非常優(yōu)秀的播放器,但是在其使用的過程中總有些瑕疵。并且這些公司沒有開放它們的源代碼。我設(shè)計的這個“基于java的音樂播放器”除了能夠播放一些常見的音頻格式外更加易于操作和使用。此軟件具有一般播放器的常用功能,界面沿用了標準的Windows窗口,主窗口的功能有對要播放文件的各種控制,所播放曲目的名稱,通過主窗口能有選擇的播放單個文件,單次播放和循環(huán)播放目錄表中的文件。程
19、序的開發(fā)環(huán)境是JDK,操作系統(tǒng)是Windows XP,用到的主要技術(shù)為java語言,eclipse編輯軟件。</p><p> 本次畢業(yè)設(shè)計的意義在于結(jié)合Java語言提供的先進的思想和多樣的媒體控制手段,結(jié)合用戶使用音樂播放器的習(xí)慣和對媒體播放器的要求,設(shè)計了一款界面清楚明了,操作簡單實效,可以實現(xiàn)在播放列表中可以加載一個或者多個多媒體文件;自動連續(xù)播放多個多媒體文件;用戶能隨意改變播放順序;在下次打開播放器時
20、,能夠自動加載上次的播放列表;在播放列表的多媒體文件播放完后可以選擇自動關(guān)閉播放器或者循環(huán)播放等功能的媒體播放器。</p><p> 1.2發(fā)展現(xiàn)狀及趨勢</p><p> 音樂播放器的設(shè)計是一門集計算機技術(shù)和數(shù)字多媒體技術(shù)于一體的綜合設(shè)計。隨著中國計算機技術(shù)、寬帶網(wǎng)絡(luò)技術(shù)的發(fā)展,越來越多的人開始重視多媒體播放器的發(fā)展與應(yīng)用。在當(dāng)今信息社會以多媒體為特征的信息技術(shù)和信息產(chǎn)業(yè)的發(fā)展及應(yīng)用
21、對人類社會產(chǎn)生的影響和作用愈來愈明顯,愈來愈重要。而音樂作為多媒體中的一個重要組成部分能改變信息的包裝,實現(xiàn)知識信息數(shù)字化,為人們獲得知識信息提供極大的方便和無窮的樂趣。友善的人機界面、多種多樣的多媒體教學(xué)軟件、誘人的電子游藝節(jié)目、身臨其境的多媒體導(dǎo)購系統(tǒng)、五花八門的信息家電和高效方便的網(wǎng)上查詢等等,無不滲透著多媒體的作用,它引導(dǎo)人們進入了一個有聲有色的世界。同時,多媒體的發(fā)展和應(yīng)用,極大地推動了各行各業(yè)的相互滲透和飛速發(fā)展,大大改變了
22、人類社會的工作環(huán)境和生活方式。可毫不夸張地說,多媒體產(chǎn)業(yè)的形成和發(fā)展,不僅引起了計算機工業(yè)的一次革命,也正在深刻地影響人類社會發(fā)生巨大的變革。多媒體技術(shù)的發(fā)展在很大程度上依靠于多媒體軟件開發(fā)的水平。</p><p> 多媒體技術(shù)是當(dāng)今信息技術(shù)領(lǐng)域發(fā)展最快、最活躍的技術(shù),是新一代電子技術(shù)發(fā)展和競爭的焦點。多媒體技術(shù)融計算機、聲音、文本、圖像、動畫、視頻和通信等多種功能于一體,借助日益普及的高速信息網(wǎng),可實現(xiàn)計算機
23、的全球聯(lián)網(wǎng)和信息資源共享,因此被廣泛應(yīng)用在咨詢服務(wù)、圖書、教育、通信、軍事、金融、醫(yī)療等諸多行業(yè),并正潛移默化地改變著我們生活的面貌。</p><p> 人類社會逐漸進入信息化時代,社會分工越來越細,人際交往越來越頻繁,群體性、交互性、分布性和協(xié)同性將成為人們生活方式和勞動方式的基本特征,其間大多數(shù)工作都需要群體的努力才能完成。但在現(xiàn)實生活中影響和阻礙上述工作方式的因素太多,如打電話時對方卻不在。即使電話交流也
24、只能通過聲音,而很難看見一些重要的圖紙資料,要面對面的交流討論,又需要費時的長途旅行和昂貴的差旅費用,這種方式造成了效率低、費時長、開銷大的缺點。今天,隨著多媒體計算機技術(shù)和通信技術(shù)的發(fā)展,兩者相結(jié)合形成的多媒體通信和分布式多媒體信息系統(tǒng)較好地解決上述問題。</p><p> 隨著網(wǎng)絡(luò)技術(shù)的不斷發(fā)展和Internet的逐漸普及,人們對網(wǎng)絡(luò)產(chǎn)品需求也不斷增長。如今流行的網(wǎng)絡(luò)音樂播放器雖然很多,但都或多或少存在一些
25、缺陷,比如:沒有記憶的功能;下次播放的時候不能從上次離開的曲目開始;沒有身份認證功能;不能有效的保護媒體播放器里面的歌曲專有性;功能組合與用戶的習(xí)慣相違背;界面太復(fù)雜以及操作太難等。隨著人們對娛樂要求的提高,一款別致的、貼近用戶操作習(xí)慣的音樂播放器非常值得去研究和開發(fā)。</p><p> 1.3主要研究方法及過程</p><p> 研究方法:主要采用行動研究法和文獻法。行動分析法,制定
26、個性研究方案,通過我們?nèi)粘嵺`情況進行分析,再研究調(diào)整重新進行實踐。首先,了解有關(guān)音樂播放器的有關(guān)技術(shù),并對現(xiàn)在主流的音樂播放器進行測試并將它們不足之處改進。并將經(jīng)驗總結(jié)、記錄,形成有價值的文字。文獻法,廣泛收集整理文獻資料,如經(jīng)典期刊,國內(nèi)外前沿研究,以及指導(dǎo)老師推薦的書目,為今后項目開發(fā)提供具有時代性,創(chuàng)造性的正面指導(dǎo)。</p><p> 研究手段:主要是結(jié)合之前的開發(fā)經(jīng)驗,聯(lián)系項目需求分析和參考文獻,根據(jù)
27、項目的特點選擇適當(dāng)?shù)拈_發(fā)工具(eclipse)和編程技術(shù)(編程語JAVA)制定項目開發(fā)方案。</p><p> 實驗方案:采用瀑布模型。首先對項目進行全面、仔細的需求分析,并準確做出項目進度安排,明確每個人的職責(zé)和任務(wù)。第二階段,是進行項目分模塊編碼。第三階段,選擇適當(dāng)?shù)臏y試方法,在完成項目編碼后,進行軟件測試,并準備填寫測試用例。對項目進行全面的測試和系統(tǒng)集成測試。</p><p>&
28、lt;b> 2 相關(guān)技術(shù)簡介</b></p><p> 2.1 Java技術(shù)簡介</p><p> Java 語言具有許多特點,當(dāng)然也是它的優(yōu)點,即簡單性、分布性、高安全性、面向?qū)ο蟆⑴c結(jié)構(gòu)的無關(guān)性、可移植性、多線程及動態(tài)性等等。簡單性:Java 語言是一種面向?qū)ο蟮恼Z言, 如果你對面向?qū)ο蟮木幊痰幕靖拍钣辛艘欢ǖ牧私?就可以比較快地學(xué)會Java 語言編程。Jav
29、a 力圖在功能齊備的基礎(chǔ)上不增加所謂的超級特點, 它毫不客氣地取消了指針、運算符重載和多重繼承的概念,以一種明晰的面向?qū)ο蟮姆椒◣椭脩舯磉_他們的想法。</p><p> Java是一種簡單的語言。Java取消了其它的許多編程語言中十分繁瑣的和難以理解的內(nèi)容,例如C/C++中的指針,C++中類的多重繼承等。Java語言在外觀上讓大多數(shù)程序員都感到很熟悉,這樣程序員不需要經(jīng)過長時間訓(xùn)練就能夠?qū)W會使用這種新型的程序
30、開發(fā)工具。Java要求的基本解釋器約為40KB ,若加上基本的程序庫,約為215KB。由于Java程序很小,因此在小型機上Java程序也能夠很好地執(zhí)行。</p><p> Java是一種面向?qū)ο蟮恼Z言。這里的“對象”是指應(yīng)用程序的數(shù)據(jù)及其操作方法。Java程序的設(shè)計思想不同于C語言基于過程的程序設(shè)計思想。設(shè)計面向?qū)ο蟮某绦蛐枰獙⒕幊讨攸c放在資料和接口上。</p><p> Java是一
31、種分布式的語言。Java有一個很周全的程序庫,且很容易與HTTP和TCP/IP通信協(xié)議相配合。Java應(yīng)用程序能在網(wǎng)絡(luò)上開啟并連結(jié)使用對象,就如同透過URL鏈接使用一個本地文件系統(tǒng)。利用Java來開發(fā)分布式的網(wǎng)絡(luò)程序是Java的一個重要應(yīng)用。</p><p> 2.2 JavaSound技術(shù) </p><p> JavaSound是一個小巧的底層API,支持數(shù)字音頻和MIDI數(shù)據(jù)的記錄
32、/回放。在JDK 1.3.0之前,JavaSound是一個標準的Java擴展API,但從Java 2的1.3.0版開始,JavaSound就被包含到JDK之中。由于Java有著跨平臺(操作系統(tǒng)、硬件平臺)的特點,基于JavaSound的音頻處理程序(包括本文的程序)能夠在任何實現(xiàn)了Java 1.3+的系統(tǒng)上運行,無需加裝任何支持軟件。</p><p> 2.2.1 JavaSound 的體系結(jié)構(gòu)</p&g
33、t;<p> 當(dāng)前JDK的JavaSound API隨同Java媒體框架(JMF,Java Media Framework)一起發(fā)布,適合JDK1.1以及更高的版本。除了JDK實現(xiàn)的JavaSound API之外,還有一個源代碼開放的JavaSound實現(xiàn)是Tritonus。圖2-1描述了JavaSound API的體系結(jié)構(gòu),虛線表示Sun的JavaSound標準定義的API調(diào)用。上面一根虛線表示我們編寫音頻處理程序要調(diào)
34、用的API,JavaSound API包含在javax.sound.sampled和javax.sound.midi包中。兩根虛線之間的部分就是JavaSound API的具體實現(xiàn)。</p><p> 圖2-1:JavaSound體系結(jié)構(gòu)</p><p> 就象上面一根虛線表示的API具有統(tǒng)一標準一樣,在所有的JavaSound實現(xiàn)中,圖一下面一根虛線表示的SPI(服務(wù)提供者接口,Se
35、rvice Provider Interface)也是統(tǒng)一的。SPI的作用是以插件(Plug-In)的形式提供自定義的擴展模塊,我們只要提供與SPI兼容的插件擴展模塊,就可以在不改變API的情況下擴展音頻處理程序的能力。SPI包含在java.sound.sampled.spi和javax.sound.midi.spi包中。例如,假設(shè)有一個只能播放WAV文件的程序,我們只要增加一個支持MP3文件解碼的插件模塊,就可以在不改動播放程序的任何
36、一行代碼的前提下,為這個播放程中添加播放MP3的能力。</p><p> 2.2.2 JavaSound混頻原理 </p><p> 圖2-2闡述了JavaSound的混頻器原理。在處理輸入音頻的應(yīng)用中,對于來自各種音頻輸入端口的信號,例如麥克風(fēng)、CD播放器、磁帶播放器,等等,我們可以在它們到達TargetDataLine之前,利用混頻器控制輸入混頻,最后在程序中通過TargetDat
37、aLine獲得數(shù)字化的音頻輸入流。</p><p> 圖2-2:JavaSound混頻器</p><p> 類似地,在處理輸出音頻的應(yīng)用中,混頻器用來對一系列來自SourceDataLine的數(shù)據(jù)進行混頻處理,經(jīng)處理后的信號可輸出到各種輸出端口,例如揚聲器、耳機等。SourceDataLine是一個可寫入音頻信號數(shù)字流的設(shè)備,例如,我們可以從一個WAV文件讀取內(nèi)容寫入到SourceDa
38、taLine,然后再通過揚聲器輸出。</p><p> 輸入到混頻器的信號可以來源于剪輯。剪輯(Clip)是一個包含一段完整音頻數(shù)據(jù)流的設(shè)備,或者說,剪輯就是一個緩沖在內(nèi)存中的完整音頻數(shù)據(jù)流。在一些要求反復(fù)播放音樂片段的場合,例如游戲的背景音樂,剪輯是很有用的。</p><p> 圖2-3描述了JavaSound API中一些常用的類、接口及其關(guān)系,所有圖三顯示的類、接口都通過Line
39、這個基本接口統(tǒng)一起來。Line接口用來關(guān)閉/打開設(shè)備、注冊事件監(jiān)聽器,以及提供一些用來調(diào)整聲音效果的對象,例如調(diào)整音量大小的對象。AudioSystem在JavaSound體系中起著一個工廠(Factory)類的作用,提供了一系列的靜態(tài)方法,我們通過這些靜態(tài)方法來獲取JavaSound系統(tǒng)默認配置的資源(所謂靜態(tài)方法,就是可以在不創(chuàng)建AudioSystem實例的情況下直接調(diào)用的方法)。</p><p> 圖2-
40、3:常用的JavaSound類</p><p> 在當(dāng)前(JDK 1.4)實現(xiàn)的JavaSound的默認配置中,輸入聲音來自本地聲卡的麥克風(fēng),輸出聲音到本地聲卡的揚聲器。應(yīng)當(dāng)說當(dāng)前實現(xiàn)的JavaSound對端口和混頻器的支持還不完善,但對于包括本文音樂播放器在內(nèi)的許多應(yīng)用來說,默認實現(xiàn)的JavaSound配置已經(jīng)足夠了。</p><p><b> 2.3 JDK技術(shù)</
41、b></p><p> Java編譯器將Java源代碼文件編譯成可執(zhí)行的Java字節(jié)碼。Java源代碼文件的擴展名為 .java,Java編譯器把這種擴展名的文件編譯成擴展名為.class的文件。源文件中的每個類在編譯后都將產(chǎn)生一個class文件,這意味一個Java源代碼文件可能編譯生成多個class文件。</p><p> Java解釋器對編譯生成的字節(jié)碼格式的可執(zhí)行程序的運行
42、提供支持,它是運行非圖形Java程序的命令行工具。它是Java Applet的簡單測試工具,可使用它來測試Java Applet程序,而不需要WWW瀏覽器的支持。</p><p> JDK(Java Development Kit)是Sun Microsystems針對Java程序員開發(fā)的產(chǎn)品。自從Java推出以來,JDK已經(jīng)成為使用最廣泛的Java SDK(Software development kit)。
43、</p><p> JDK 是整個Java的核心,包括了Java運行環(huán)境(Java Runtime Environment),一堆Java工具和Java基礎(chǔ)的類庫(rt.jar)。不論什么Java應(yīng)用服務(wù)器實質(zhì)都是內(nèi)置了某個版本的JDK。因此掌握 JDK是學(xué)好Java的第一步。最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如IBM公司開發(fā)的JDK,BEA公司的
44、Jrocket,還有GNU組織開發(fā)的JDK等等。其中IBM的JDK包含的JVM(Java Virtual Machine)運行效率要比Sun JDK包含的JVM高出許多。而專門運行在x86平臺的Jrocket在服務(wù)端運行效率也要比Sun JDK好很多。但不管怎么說,我們還是需要先把Sun JDK掌握好。</p><p> 從SUN的JDK5.0開始,提供了泛型等非常實用的功能,其版本信息也不再延續(xù)以前的1.2,
45、1.3,1.4,而是變成了5.0,6.0了。從6.0開始,其運行效率得到了非常大的提高,尤其是在桌面應(yīng)用方面。</p><p> JDK本身使用了Java語言編寫,在我們下載的安裝包里,有一個src.zip,里面就是JDK的源代碼。</p><p><b> 3需求分析</b></p><p><b> 3.1功能需求</
46、b></p><p> 3.1.1 播放器的基本控制需求</p><p> 根據(jù)項目的目標,我們可獲得項目系統(tǒng)的基本需求,以下從不同的角度來描述系統(tǒng)的需求,并且使用用例圖來描述,系統(tǒng)的功能需求,我們分成以下幾部分來概括,即播放器的基本控制需要,播放列表管理需求如圖3-1所示。</p><p> 圖3-1 播放器基本控制圖</p><p
47、> 在播放器正在運行時,用戶選擇一首歌曲后單擊“播放”按鈕,播放器將播放選中的播放列表中的音樂,并同時顯示當(dāng)前進度;當(dāng)歌曲未暫停或停止時,用戶單擊“暫?!卑粹o,播放器將進入暫停狀態(tài);播放器正在播放或暫停時,用戶單擊“停止”按鈕,播放器將停止播放或暫停時,用戶點擊“上一首”或者“下一首”按鈕,播放器將播放上一首或下一首歌曲。</p><p> 3.1.2功能需求分析</p><p>
48、; 從時序圖3-2中可以看出播放器中信息發(fā)送和調(diào)用過程。</p><p> 圖3-2 音樂播放器的時序圖</p><p> 3.2 運行及其它需求分析</p><p> 硬件條件:賽揚CPU、 1G 內(nèi)存、10G硬盤以上的PC機。</p><p> 軟件條件:Windows XP 、 eclipse 3.7.2 、 jdk1.6.0
49、。</p><p> 本軟件對其它軟件幾乎沒有依賴性,程序健壯性較好有較好的可維護性、可靠性、可理解性、效率。易于用戶理解和操作。可維護性包括了可讀性、可測試性等含義??煽啃酝ǔ0ㄕ_性和健壯性。開發(fā)過程中,在各種矛盾的目標之間作權(quán)衡,并在一定的限制的條件下(經(jīng)費、時間、可用的軟、硬件資源等),使上述各方面最大限度的得到滿足。</p><p><b> 3.3 可行性分析&
50、lt;/b></p><p> 3.3.1 經(jīng)濟及技術(shù)可行性</p><p> 經(jīng)濟可行性研究是對組織的經(jīng)濟現(xiàn)狀和投資能力進行分析,對系統(tǒng)建設(shè)運行和維護費用進行估算,對系統(tǒng)建成后可能取得的社會和經(jīng)濟效益進行估計。由于本系統(tǒng)是作為畢業(yè)設(shè)計由我自己開發(fā)的,在經(jīng)濟上的投入甚微,系統(tǒng)建成之后將為今后播放音樂提供很大的方便,估算新系統(tǒng)的開發(fā)費用和今后的運行、維護費用,估計新系統(tǒng)將獲得的效益
51、,并將費用與效益進行比較,看是否有利。</p><p> 開發(fā)、運行和維護費用主要包括:購買和安裝設(shè)備的費用:計算機硬件、系統(tǒng)軟件、電源、空調(diào)等;軟件開發(fā)費用:若由實習(xí)單位的技術(shù)人員開發(fā),則該項費用可以計入下面的人員費用一項;人員費用:系統(tǒng)開發(fā)人員、操作人員和維護人員的工資、培訓(xùn)費用等;消耗品費用:系統(tǒng)開發(fā)所用材料、系統(tǒng)正常運行所用消耗品,例如水、電費、打印紙、軟盤、色帶等開支。結(jié)合該畢業(yè)設(shè)計的整個過程所有開支
52、都不大,所以經(jīng)濟上是可行的。 </p><p> 技術(shù)可行性要考慮現(xiàn)有的技術(shù)條件是否能夠順利完成開發(fā)工作,軟硬件配置是否滿足開發(fā)的需求等。該音樂播放器用的是java語言開發(fā)的,調(diào)試相對簡單,當(dāng)前的計算機硬件配置也完全能滿足開發(fā)的需求,因此在技術(shù)上是絕對可行的。軟件方面:用的是eclipse,它的速度快、可靠性能高、價格低,完全能滿足系統(tǒng)的需求。</p><p> 3.3.2 運行及法律
53、可行性</p><p> 對新軟件運行后給現(xiàn)行系統(tǒng)帶來的影響(包括組織機構(gòu)、管理方式、工作環(huán)境等)和后果進行估計和評價。同時還應(yīng)考慮現(xiàn)有管理人員的培訓(xùn)、補充,分析在給定時間里能否完成預(yù)定的系統(tǒng)開發(fā)任務(wù)等。</p><p> 運行可行性是對組織結(jié)構(gòu)的影響,現(xiàn)有人員和機構(gòu)和環(huán)境對系統(tǒng)的適應(yīng)性及人員培訓(xùn)補充計劃的可行性。當(dāng)前我國信息化技術(shù)已經(jīng)相當(dāng)普及,各類操作人員水平都有相當(dāng)?shù)母叨?,所以在運
54、行上是可行性的。從時間上看,時間上是有點緊,但通過一個多月的努力基本功能現(xiàn)在已經(jīng)基本實現(xiàn)。在法律可行性上從以下幾點考慮:</p><p> ?、?所有技術(shù)資料都為合法。</p><p> ?、?開發(fā)過程中不存在知識產(chǎn)權(quán)問題。</p><p> ?、?未抄襲任何已存在的課程信息管理系統(tǒng),不存在侵犯版權(quán)問題。</p><p> ?、?開發(fā)過程中未
55、涉及任何法律責(zé)任。</p><p> 綜上所述,本系統(tǒng)的開發(fā)從技術(shù)上、從經(jīng)濟上、從法律上都是完全可靠的。</p><p> 4 軟件結(jié)構(gòu)及界面設(shè)計</p><p><b> 4.1軟件結(jié)構(gòu)設(shè)計</b></p><p> 本軟件不僅要求功能完善,而且還要界面友好,因此,對于一個成功的軟件設(shè)計,功能模塊的設(shè)計是關(guān)鍵。
56、在需求分析階段,搞清楚了軟件“做什么”的問題,形成了目標軟件的邏輯模型?,F(xiàn)在我們所要做的就是要把軟件“做什么”的邏輯模型變換為“怎么做”的物理模型,即著手實現(xiàn)軟件的需求。我們需要描述的是系統(tǒng)的總的體系結(jié)構(gòu)。</p><p> 軟件的設(shè)計中最重要的就是軟件的模塊化。模塊化是指解決一個復(fù)雜問題時自頂向下逐層把軟件系統(tǒng)劃分成若干個模塊的過程。每個模塊完成一個特定的功能,所有的模塊按某種方法組織起來,成為一個整體,完成
57、整個系統(tǒng)所要求的功能。</p><p> 將系統(tǒng)劃分為多個模塊是為了降低軟件系統(tǒng)的復(fù)雜性,提高可讀性、可維護性,但模塊的劃分不能是任意的,應(yīng)盡量保持其獨立性。也就是說,每個模塊只完成系統(tǒng)要求的獨立</p><p> 子功能,并且與其他模塊的聯(lián)系最少且接口簡單,即盡量做到高內(nèi)聚低耦合,提高模塊的獨立性,為設(shè)計高質(zhì)量的軟件結(jié)構(gòu)奠定基礎(chǔ)。</p><p> 圖4-1
58、 音樂播放器系統(tǒng)流程圖</p><p> 在系統(tǒng)的概要設(shè)計中采用結(jié)構(gòu)化設(shè)計以需求分析階段產(chǎn)生的數(shù)據(jù)流圖為基礎(chǔ),按一定的步驟映射成軟件結(jié)構(gòu)。首先將整個系統(tǒng)化分為幾個小問題,小模塊。然后,進一步細分模塊,添加細節(jié)。系統(tǒng)流程圖如圖 4-1所示。</p><p> 4.2 GUI界面設(shè)計</p><p> 播放器的GUI設(shè)計可以包含兩個方面:界面布局的設(shè)計和生成按扭的
59、代碼設(shè)計。在GUI設(shè)計中,我們要了解構(gòu)成程序的各個GUI部件。</p><p><b> 圖4-2 菜單項</b></p><p> 音樂播放器的界面有“文件”、“播放”、“顯示”“幫助”4個主菜單,其中“文件”菜單包含“打開文件”、“退出系統(tǒng)”兩個菜單項,“播放”菜單里包含“播放/暫停”“停止”,“播放控制”。菜單項如圖4-2所示。</p><
60、;p> 鑒于構(gòu)造用戶界面往往需要大量的代碼,且這些代碼通??梢杂肐DE自動生成,所以對一些關(guān)鍵的GUI元素略作介紹,不再給出完整的代碼。主界面分為上、下兩個部分,上面是視覺部件,下面是控制面板。播放音頻文件界面如圖4-3 所示。</p><p> 圖4-3音樂播放器的播放界面</p><p><b> 5詳細設(shè)計</b></p><p&
61、gt; 5.1打開文件菜單下的詳細設(shè)計</p><p> 打開文件菜單下有“打開文件”,“推出系統(tǒng)”兩個子菜單。分別介紹如下:</p><p> 5.1.1打開文件設(shè)計</p><p> 對于一個完整的音樂播放器軟件,不僅要求功能強大、操作簡單,還要有良好的設(shè)計風(fēng)格和另人爽目的界面。添加歌曲功能對于整個系統(tǒng)來說是非常重要的。</p><p
62、> 通過 menuItem open = new MyMenuItem(); 來初始化變量。</p><p> 通過以下的if 語句進行格式判斷</p><p> if (menuItem_AutoChange.isSelected() == true) {</p><p> if (fileMode.equals("mp3") |
63、| fileMode.equals("MP3") || fileMode.equals("WAV") || fileMode.equals("wav"))</p><p><b> {</b></p><p> menu_transparence.setEnabled(true);</p>
64、<p> menu_transparence1.setEnabled(true);</p><p> changToMusicMode();</p><p><b> } </b></p><p> but_stop.setFocusable(true);</p><p> if (player !
65、= null) {</p><p> closePlayerStream(); }</p><p> 判斷是否選擇了打開文件如果選擇了則調(diào)用open();函數(shù)。</p><p> Public void actionPerformed(ActionEvent e){</p><p> Object source = e.getSour
66、ce();</p><p> if(source == menuItem_open){</p><p><b> open();</b></p><p><b> }</b></p><p> 5.1.2 退出系統(tǒng)設(shè)計</p><p> 通過menuItem_exi
67、t = new MyMenuItem(“退出系統(tǒng)”);進行聲明并初始化。</p><p> 在CommendActionListener() 函數(shù)中進行判斷是單擊了“打開文件”還是“退出系統(tǒng)”如果是選擇了“退出系統(tǒng)”則直接退出系統(tǒng)。其主要代碼如下所示。</p><p> Public void actionPerformed(ActionEvent e){</p><
68、;p> Object source = e.getSource();</p><p> if(source == menuItem_open){</p><p><b> open();</b></p><p> } else if (source == menuItem_exit){</p><p>&l
69、t;b> // 直接退出</b></p><p> System.exit(0);</p><p><b> }</b></p><p><b> } </b></p><p> 5.2播放菜單下的詳細設(shè)計</p><p> 播放菜單
70、下包含“播放/暫?!保巴V埂?,“播放控制”,“播放列表”,“音量”這五個子菜單。初始化代碼如下:</p><p> menuItem_palyOrPause = new MyMenuItem("播放/暫停"); menuItem_stop = new MyMenuItem("停止"); menu_control = new MyMenu("播放控制"
71、); menu_playerMode = new MyMenu("播放列表");menuItem_sound = new MyMenu("音量");</p><p> 在其執(zhí)行時按照以下判斷執(zhí)行相應(yīng)的操作。主要代碼如下:</p><p> else if (source == menuItem_palyOrPause || source == m
72、enuItem_paly_Popup || source == exitItem_playOrPause_SystemTray) {</p><p> if (BoolMember.firstPlayer) {</p><p> System.out.println(list.getSelectedIndex());</p><p> playMedia(li
73、st.getSelectedIndex());</p><p><b> } else {</b></p><p> if (player != null) {</p><p> if (BoolMember.tempPause && BoolMember.playerOrPause) {</p><p
74、> pauseMedia(); </p><p> BoolMember.tempPause = false;</p><p> } else if (!BoolMember.playerOrPause) {</p><p> pauseToPlayer();</p><p> BoolMember.tempPause =
75、 true;</p><p><b> } else {</b></p><p> pauseMedia();</p><p><b> }} }</b></p><p> } else if (source == menuItem_stop || source == menuItem_st
76、op_Popup || source == exitItem_stop_SystemTray) {</p><p> stopMedia();</p><p><b> } </b></p><p> 5.3顯示菜單下的詳細設(shè)計</p><p> 顯示菜單下包括“前端顯示”和“自動切換”兩個子菜單。“前端顯示”用
77、來控制播放界面永遠處在最前面?!白詣忧袚Q”用來控制當(dāng)選擇了播放某一歌曲后能自動切換到小模式下進行播放。其主要代碼如下所示:</p><p> else if (source == menuItem_onTop) {</p><p> if (menuItem_onTop.isSelected()) {</p><p> setAlwaysOnTop(true)
78、;</p><p><b> } else {</b></p><p> setAlwaysOnTop(false);</p><p><b> }</b></p><p> } else if (source == menuItem_allScreen) {</p><
79、p> if (visual != null) {</p><p> if (!ifAllScreen) {</p><p> fullScreenView();</p><p> ifAllScreen = true;</p><p><b> } else {</b></p><p&
80、gt; originalView();</p><p> ifAllScreen = false;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 5.4幫助
81、菜單下的詳細設(shè)計</p><p> 幫助菜單下包含“關(guān)于”,“幫助”兩個子菜單。其“關(guān)于”用來顯示此軟件的“名稱”,“版本”,“作者”等基本信息?!皫椭辈藛蔚墓δ軇t是用來顯示所有的快捷鍵組合。如圖5-1和圖5-2所示:</p><p><b> 圖5-1 關(guān)于窗口</b></p><p><b> 圖5-2 關(guān)于窗口</
82、b></p><p> 5.5播放列表的詳細設(shè)計</p><p> 播放列表如圖5-3所示。選中要播放的文件然后單擊右鍵進行列表控制。其主要代碼如下所示: 通過以下代碼進行初始化:</p><p> menuItem_playSelect = new MyMenuItem("播放選中文件");menuItem_delete = new
83、 MyMenuItem("從列表中刪除"); menuItem_Addfile = new MyMenuItem("向列表中添加"); menuItem_deleteAll = new MyMenuItem("清除列表文件"); </p><p> 通過以下判斷語句處理右鍵操作:</p><p> else if ((mo
84、ds & 4) != 0 && e.getSource() == list) {</p><p> popupMenuAll.add(menuItem_playSelect);</p><p> popupMenuAll.add(menuItem_delete);</p><p> popupMenuAll.add(menuItem_A
85、ddfile);</p><p> popupMenuAll.add(menuItem_deleteAll);</p><p> popupMenuAll.show(list, e.getX(), e.getY());</p><p><b> }</b></p><p> 通過以下函數(shù)執(zhí)行相應(yīng)的操作:</
86、p><p> public void pupupSeletedAction(Object source) {</p><p> if (source == menuItem_delete) {</p><p> removeFile(list.getSelectedIndex(), false);</p><p> } else if (
87、source == menuItem_deleteAll) {</p><p> removeFile(list.getSelectedIndex(), true);</p><p> } else if (source == menuItem_Addfile) {</p><p><b> open();</b></p>
88、<p> } else if (source == menuItem_playSelect) {</p><p> playMedia(list.getSelectedIndex());</p><p><b> }</b></p><p><b> }</b></p><p>&
89、lt;b> 圖5-3 播放列表</b></p><p> 5.6播放按鈕的詳細設(shè)計</p><p> 播放按鈕如圖5-4 所示,包括上一曲、播放/暫停、停止、下一曲、快進、快退、音量控制,其初始化代碼如下所示:</p><p> private MyButton but_rewind = null;</p><p>
90、 private MyButton but_play = null;</p><p> private MyButton but_stop = null;</p><p> private MyButton but_fastForward = null;</p><p> private MyButton but_sounds = null;</p&g
91、t;<p> private MyButton but_skipBackward = null;</p><p> private MyButton but_skipForward = null;</p><p> private MyButton but_pause = null;</p><p> private MyButton but_
92、music = null;</p><p> private MyButton but_screen = null;</p><p><b> 改變音量的主要代碼</b></p><p> private class SoundChangListener implements ChangeListener {</p><
93、;p> public void stateChanged(ChangeEvent e) {</p><p> but_sounds.setActionCommand("false");</p><p> but_sounds.setIcon(new ImageIcon(PlayUI.class.getClassLoader().getResource(&qu
94、ot;images/sound.png")));</p><p> menuItem_noSound.setSelected(false);</p><p> if (player != null) {</p><p> player.getGainControl().setLevel(</p><p> (float) j
95、Slider_sound.getValue() / 100);</p><p> mediaMute(but_sounds.getActionCommand());</p><p><b> }</b></p><p> lable_infor.setText("音量:" + jSlider_sound.getValu
96、e() + " " + "進度:" + (int) newTime / 3600 + ":" + (int) (newTime % 3600) / 60 + ":" + (int) (newTime % 60));</p><p> jSlider_sound.setToolTipText(jSlider_sound.getValu
97、e() + "");</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 圖5-4 播放控制按鈕</p><p><b> 6結(jié)論&l
98、t;/b></p><p> 經(jīng)過老師的悉心指導(dǎo)和自己的辛苦努力,大體上完成了“Java音樂播放器”的開發(fā)。但是由于時間倉促,仍有許多方面存在著不足,一些功能還是沒有實現(xiàn),比如播放器只可以播放java 本身支持的幾種音樂格式,不能添加歌詞同步,不能在線播放等,整個播放器還有許多功能需要待進一步的完善和改進。</p><p> 經(jīng)過對畢業(yè)設(shè)計從頭到尾的設(shè)計和開發(fā),使我在大學(xué)學(xué)到的知
99、識應(yīng)用的更加熟練,達到了學(xué)以致用。 </p><p> 在程序設(shè)計過程中,我體會到了只有實踐才能掌握知識,書本上的知識是不夠的,只有把理論與實踐相結(jié)合才能夠真正的學(xué)到知識。一個軟件的設(shè)計,不可能一步到位,還需要不斷的完善和補充。同時,系統(tǒng)中還存在許多問題,有待在日后的使用中發(fā)現(xiàn)和解決。編程前的深思熟慮是減少程序調(diào)試工作量的重要方法,只有進行充分考慮,才會減少調(diào)試過程中的工作量。雖然在開始寫程序之前我們做了多的準
100、備工作,但在真正的寫程序時仍然發(fā)現(xiàn)許多問題,有些問題是分析時的疏漏,有些則是如果不做無論如何也想不到的。</p><p><b> 參考文獻</b></p><p> 施霞萍,張歡歡.java程序設(shè)計教程 第二版 機械功業(yè)出版社 2010,P20-315.</p><p> 耿素云,張躍平.Java實用教程[M].清華大學(xué)出版社,P10-
101、300.</p><p> 原野,沈均義,刑東山.基于Java的音樂播放器.計算機機工程,2002年,P54-57.</p><p> 劉黎明,黨東耀.Java Applet 多媒體播放器設(shè)計.計算機應(yīng)用,2000,P2-78.</p><p> 潘傳幫,楊瑞峰.Java實效編程百例.人民郵電出版社.2001,P34-54.</p><p&
102、gt; 李爭,陸正中 .JBuilder 精髓.電子工業(yè)出版社,P56-59.</p><p> 張勇,基于Java的多媒體技術(shù)研究及實現(xiàn).西安電子科技大學(xué),P12-98.</p><p> Sun公司編著Java程序設(shè)計語言基礎(chǔ):實踐指南.Sun Java技術(shù)網(wǎng)站電子文檔</p><p> Bruce Eckel編著.Java編程思想.機械工業(yè)出版社,P2
103、3-45.</p><p> IBM著作.Java 3D簡介.IBM網(wǎng)站Java技術(shù)在線教程,P34-66.</p><p> 張桂珠 劉麗 陳愛國 Java面向?qū)ο蟪绦蛟O(shè)計(第2版)北京郵電大學(xué)出版社,P23-75.</p><p> 畢廣吉.Java程序設(shè)計實例教程[M]. 北京:冶金工業(yè)出版社,2007年,P87-90.</p><p
104、> 王保羅.Java面向?qū)ο蟪绦蛟O(shè)計[M]. 北京:清華大學(xué)出版社,2003年.P12-32.</p><p> 高林,周海燕.Jsp網(wǎng)上書店系統(tǒng)與案例分析[M]. 北京:人民郵電出版社,2004年,P12-21.</p><p> 劉騰紅,孫細明.信息系統(tǒng)分析與設(shè)計[M]. 北京:科學(xué)出版社,2003年,P32-43.</p><p> 李竺,崔煒.
105、多媒體技術(shù)與應(yīng)用 (立體教材計算機系列)北京:清華大學(xué)出版社,2008-06-01.</p><p> 陳慶璋,周必水.多媒體技術(shù)教程[M].杭州:浙江科技出版社,1998-11-11,P43-49.</p><p> 石志國,劉翼偉,王志良.Java應(yīng)用教程修訂本(配光盤)(高等學(xué)校計算機語言應(yīng)用教程) 北方交通大學(xué)出版社,2008-06-01.</p><p&g
106、t; Siyan K S,Weaver J.精通Java編程.北京:宇航出版社,1988年,P33-45.</p><p> 傅獻禎, Java Application 常見項目實例開發(fā)過程全解.電子工業(yè)出社,P23-25.</p><p> Bruce Eckel,《Thinking in Java 4》,American:Prentice Hall PTR.</p>
107、<p> O’reilly,《Java Servlet Programming》,American:Sernni Yey,P32-44.</p><p> O'Reilly & Associates, Inc 《Java Cookbook》in the United States or Canada,P78-98.</p><p> Horstmann,C
108、ornell.Core Java2.Advanced Features.2000,p99-102.</p><p> David Flanagan. A Desktop Quick Reference.O’Reilly.1997,P122-132.</p><p><b> 致 謝</b></p><p> 轉(zhuǎn)眼間,大學(xué)生活即將結(jié)束,回
109、首過去三年的大學(xué)生活,雖然有苦也有樂,但是更多的則是收獲,感謝母校的各位老師無私地傳授給我們知識,也教會了我們?nèi)绾巫鋈俗鍪?。在這次畢業(yè)設(shè)計中,我感到自己的知識得到了一次升華,我相信我的畢業(yè)設(shè)計會給我的三年大學(xué)畫上一個圓滿的句號。</p><p> 在這三年中,老師的諄諄教導(dǎo)、同學(xué)的互幫互助使我在專業(yè)技術(shù)和為人處事方面都得到了很大的提高。感謝新余學(xué)院在我三年的大學(xué)生活當(dāng)中對我的教育與培養(yǎng),感謝1111111111
110、1電氣與信息學(xué)院的所有專業(yè)老師,沒有你們的辛勤勞動,就沒有我們今日的滿載而歸,感謝大學(xué)三年曾經(jīng)幫助過我的所有同學(xué)。</p><p> 這次畢業(yè)論文設(shè)計我得到了很多老師和同學(xué)的幫助,其中我的畢業(yè)設(shè)計指導(dǎo)老師沈老師對我的關(guān)心和支持尤為重要。每次遇到難題,我都會向沈老師尋求幫助,而張老師每次不管忙或閑,總會抽空和我面談,然后一起商量解決的辦法。沈老師平日里工作繁多,但我做畢業(yè)設(shè)計的每個階段,從選題到查閱資料,到系統(tǒng)設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計論文 音樂播放器設(shè)計
- 音樂播放器畢業(yè)設(shè)計
- ios音樂播放器畢業(yè)設(shè)計
- 畢業(yè)設(shè)計(論文)-單片機音樂播放器設(shè)計
- ios_音樂播放器畢業(yè)設(shè)計
- 可編程音樂播放器 畢業(yè)設(shè)計
- 可編程音樂播放器畢業(yè)設(shè)計
- 畢業(yè)設(shè)計(論文)基于android手機平臺的音樂播放器
- 視頻播放器畢業(yè)設(shè)計
- 基于android的mp3音樂播放器設(shè)計畢業(yè)設(shè)計論文
- 給予android的mp3音樂播放器設(shè)計--畢業(yè)設(shè)計論文
- 畢業(yè)論文——基于android音樂播放器的設(shè)計
- 畢業(yè)設(shè)計-- 基于單片機的音樂播放器設(shè)計
- 音樂播放器的設(shè)計與實現(xiàn)畢業(yè)論文
- 畢業(yè)設(shè)計基于android手機平臺的音樂播放器
- 畢業(yè)設(shè)計—基于單片機的音樂播放器
- 畢業(yè)設(shè)計---基于單片機的音樂播放器
- 基于android的音樂播放器的設(shè)計-畢業(yè)論文
- 畢業(yè)設(shè)計基于android平臺的音樂播放器設(shè)計與開發(fā)
- ios音樂播放器論文
評論
0/150
提交評論