2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩17頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p><b>  畢業(yè)設(shè)計(jì)(論文)</b></p><p>  題目: 基于J2ME平臺(tái)環(huán)境下的手機(jī)音樂播放器</p><p>  學(xué) 院: 電子信息工程系 </p><p>  專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) </p><p>  2011年12月24日&

2、lt;/p><p><b>  摘 要</b></p><p>  隨著無線移動(dòng)通信的高速發(fā)展及各種移動(dòng)業(yè)務(wù)種類的快速增長,一切互聯(lián)網(wǎng)上的業(yè)務(wù)都在移動(dòng)通信系統(tǒng)中得到應(yīng)用。然而,由于用戶需求的原因,或者終端支持與否的因素,并非所有手機(jī)都能正確顯示同一信息內(nèi)容。而且隨著客戶端設(shè)備的類型越來越多,人們對(duì)個(gè)性化服務(wù)的要求越來越高,個(gè)性化信息服務(wù)成為將來網(wǎng)絡(luò)信息服務(wù)發(fā)展的 一個(gè)重

3、要的方向。 移動(dòng)終端是一種采用先進(jìn)通信協(xié)議棧的復(fù)雜系統(tǒng),它需要具有與許多網(wǎng)絡(luò)設(shè)備互操作、支持先進(jìn)而豐富的多媒體的應(yīng)用程序。而且, 所有這些都必需在一個(gè)資源有限的嵌入式系統(tǒng)的約束條件下實(shí)現(xiàn)。 JAVA技術(shù)提供了跨平臺(tái)的能力,并支持多種器件設(shè)備。J2ME和MIDP(移動(dòng)信息器件概覽)可在任何被支持的系統(tǒng)上運(yùn)行同樣的應(yīng)用程 序。JAVA技術(shù)為無線設(shè)備創(chuàng)建了一個(gè)全新的開發(fā)平臺(tái),這一平臺(tái)可以 跨越多種設(shè)備和多個(gè)系統(tǒng)平臺(tái)。JAVA的跨平臺(tái)特性,使得

4、基于J2ME 的應(yīng)用程序具有移植性好等其他優(yōu)勢,可以讓移動(dòng)通信設(shè)備發(fā)揮出最 大的潛能。JAVA手機(jī)作為移動(dòng)終端為今后移動(dòng)通信發(fā)展提供了很好的 解決方案。 本文首先分析了J2ME在當(dāng)前移動(dòng)終端發(fā)展中所具有的重要角色, 選擇J2ME作為移動(dòng)終端軟件開發(fā)平臺(tái)的優(yōu)</p><p><b>  關(guān)鍵詞:</b></p><p><b>  MIDP</b>

5、</p><p><b>  J2ME</b></p><p><b>  音樂播放器</b></p><p><b>  Abstract</b></p><p>  With the rapid development of wireless mobile communic

6、ation and mobile business types of rapid growth, all business on the Internet in mobile communication system. However, because the user demand reasons, or terminal support or factors, not all mobile phone can correctly d

7、isplay the same information content. And as the client device type is more and more, people of personalized service of the increasingly high demand, personalized information service become the future network information

8、servic</p><p>  Key word.:</p><p><b>  MIDP</b></p><p><b>  J2ME</b></p><p>  Music Player</p><p><b>  目錄</b></p>

9、<p><b>  摘 要II</b></p><p>  AbstractII</p><p><b>  第一章引言1</b></p><p>  1.1課題背景1</p><p>  1.1.1移動(dòng)終端的發(fā)展現(xiàn)狀1</p><p>  1.

10、1.2個(gè)性化服務(wù)1</p><p>  1.1.3 J2ME在移動(dòng)終端領(lǐng)域的優(yōu)勢與發(fā)展2</p><p><b>  1.2論文成果2</b></p><p>  1.3論文組織結(jié)構(gòu)2</p><p>  第二章 J2ME體系結(jié)構(gòu)及技術(shù)簡介2</p><p>  2.1J2ME 的概況

11、2</p><p>  2.2J2ME 簡介3</p><p>  2.2.1 J2ME 架構(gòu)3</p><p>  2.2.2 JVM ( 虛擬機(jī) )3</p><p>  2.2.3 MIDP( 移動(dòng)信息設(shè)備簡表 )3</p><p>  第三章 系統(tǒng)需求分析和總體設(shè)計(jì)4</p><p

12、>  3.1 系統(tǒng)功能需求4</p><p>  3.1.1播放器界面4</p><p>  3.1.2播放的功能5</p><p>  3.1.3音樂播放音量的控制6</p><p>  3.1.4歌曲播放時(shí)間的顯示6</p><p>  3.1.5歌曲的快進(jìn)與快退6</p><

13、p>  3.2 總體設(shè)計(jì)6</p><p>  3.2.1播放器界面設(shè)計(jì)6</p><p>  3.2.2播放功能8</p><p>  3.2.3對(duì)音量的控制9</p><p>  3.2.4歌曲的播放時(shí)間10</p><p>  3.2.5歌曲的快進(jìn)與快退10</p><p&g

14、t;  3.2.6歌曲進(jìn)度條的顯示10</p><p>  第四章 系統(tǒng)測試與檢驗(yàn)11</p><p>  4.1 測試概要11</p><p>  4.1.1測試的基本概念11</p><p>  4.1.2測試的目的與地位11</p><p>  4.2 測試項(xiàng)目11</p><

15、;p>  4.2.1測試界面11</p><p>  4.2.2測試播放暫停靜音12</p><p>  4.2.3測試改變音量,快退快進(jìn)12</p><p>  第五章 總結(jié)12</p><p>  5.1總結(jié)軟件及收獲12</p><p>  5.2 致謝語13</p><

16、p>  第六章 參考文獻(xiàn)13</p><p><b>  引言</b></p><p><b>  1.1課題背景</b></p><p>  1.1.1移動(dòng)終端的發(fā)展現(xiàn)狀 </p><p>  當(dāng)今在全球信息與通信領(lǐng)域中,無線移動(dòng)通信的發(fā)展之快最引人注目。在中 國,僅蜂窩移動(dòng)通信用戶早

17、已跨過3億大關(guān),而在全球15億的移動(dòng)用戶已成事實(shí)。 中國在全球范圍內(nèi)不僅用戶數(shù)增長最快,而且移動(dòng)用戶與固定電話用戶之比的增 長率也是全球第一。 按照無線移動(dòng)終端的發(fā)展歷程大致將其分為三類: 第一類是以語音通信為主的手機(jī),也就是我們傳統(tǒng)意義上的手機(jī),目前主要 面向低端市場,這類手機(jī)的硬件都是圍繞一個(gè)單一的基帶處理器搭建的,該處理 器執(zhí)行電信和其它簡單的應(yīng)用任務(wù)。 第二類是增值業(yè)務(wù)手機(jī),也叫多功能手機(jī),這是目前需求量最大的手機(jī)。這 些手機(jī)一

18、般面向特定應(yīng)用,一個(gè)功能強(qiáng)大的基帶處理器芯片實(shí)現(xiàn)移動(dòng)終端的主要 功能,如果基帶處理器不能滿足諸如視頻處理等功能,可以配套使用一個(gè)應(yīng)用協(xié) 處理器,它面向特定應(yīng)用。 第三類是智能手機(jī),即高端手機(jī),曾被定義為“擁有操作系統(tǒng)并支持第三方 應(yīng)用的手機(jī)”。這類手機(jī)中應(yīng)用處理器成為系統(tǒng)的核心,而GSM/GPPS等通信 MODEM則成為實(shí)現(xiàn)連接功能的外設(shè)之一,此外還有其它通信外設(shè),如WLAN、 藍(lán)牙、USB等,并且可能提供統(tǒng)一的擴(kuò)展接口。智能手機(jī)通常要

19、采用復(fù)雜的嵌入 式操作系統(tǒng)為</p><p>  1.1.2個(gè)性化服務(wù) </p><p>  個(gè)性化服務(wù)是網(wǎng)絡(luò)又稱為個(gè)性化定制服務(wù),是根據(jù)客戶的特性提供具有針對(duì) 性的信息內(nèi)容和系統(tǒng)功能;就是將用戶感興趣的內(nèi)容提供給客戶,在某一特定的 網(wǎng)上功能和服務(wù)方式中,由用戶自己設(shè)定網(wǎng)上信息的來源方式、表現(xiàn)形式、特定 網(wǎng)上功能及其他網(wǎng)上服務(wù)方式等。個(gè)性化服務(wù),就是針對(duì)不同的用戶,采用不同 的服務(wù)策略和方

20、式,提供不同的信息內(nèi)容的服務(wù)。 在信息發(fā)布尤其是大范圍的信息發(fā)布時(shí),所有的客戶端收到的信息都是相同 的,而如果客戶端移動(dòng)設(shè)備的硬件或軟件類型不適合顯示服務(wù)器發(fā)布的信息,比 如屏幕不夠大、不支持某種解碼方式等,那客戶端在信息的接收上就會(huì)受到影響。 至于允許客戶端自己選擇顯示方式,那更是不可能的事情。而且隨著客戶端設(shè)備 的類型越來越多,人們對(duì)個(gè)性化服務(wù)的要求越來越高,這個(gè)問題更加突出。于是 人們開始探索客戶端與服務(wù)器端是否能進(jìn)行“內(nèi)容協(xié)商”

21、,即客戶端通過某種方式告訴服務(wù)器端,客戶端的信息表達(dá)環(huán)境是怎樣的,以及客戶需要什么樣的信息。而我們要做的手機(jī)音樂播放器也是需要個(gè)性化的,我們會(huì)在已有的播放器基礎(chǔ)上再添加以下個(gè)性化的元素進(jìn)去,讓用戶用的舒心,省心。 </p><p>  1.13 J2ME在移動(dòng)終端領(lǐng)域的優(yōu)勢與發(fā)展</p><p>  JAVA語言是由美國SUN公司在1995年設(shè)計(jì)的,原是為機(jī)頂盒這種嵌入式系統(tǒng)設(shè)計(jì)的,

22、但并沒有在嵌入式領(lǐng)域得到發(fā)展,隨著internet的普及JAVA占領(lǐng)了PC 端和Server端,現(xiàn)在JAVA又回到了嵌入式領(lǐng)域。為了和PC端、Server端的JAVA 相區(qū)別,用于嵌入式系統(tǒng)的JAVA被稱為JAVA 2 Micro Edition簡稱J2ME。針對(duì)有限記憶體,顯示和處理能力的設(shè)備,主要是消費(fèi)電子和嵌入式設(shè)備領(lǐng)域。 JAVA是惟一可以在各種操作設(shè)備上創(chuàng)建應(yīng)用的技術(shù)。它極大地提高了w曲 的交互性,使Web從單純的靜態(tài)文本形式

23、變成了豐富多彩的可執(zhí)行程序形式。JAVA 的一個(gè)重要特點(diǎn)是平臺(tái)無關(guān)性。JAVA程序均被編譯成一種虛擬器代碼,在被稱為JAVA虛擬機(jī)的解釋器上執(zhí)行,因此只要一個(gè)操作系統(tǒng)帶有JAVA解釋器,或者 Web瀏覽器帶有JAVA解釋器,JAVA程序就可以執(zhí)行。JAVA語言的平臺(tái)無關(guān)性 成功地解決了Internet上的異質(zhì)問題。 移動(dòng)資訊設(shè)備的主要操作系統(tǒng)平臺(tái)都是開放的,J2ME的標(biāo)準(zhǔn)也是開放的,因 此基本上所有的主要操作系統(tǒng)平臺(tái)都支持或?qū)⒅С諮2M

24、E,這帶來的廣闊市場和真 正的“一次</p><p><b>  1.2論文成果</b></p><p>  本論文分析了J2ME在當(dāng)前移動(dòng)終端發(fā)展中所具有的重要角色,選擇J2ME作為移動(dòng)終端軟件開發(fā)平臺(tái)的優(yōu)勢。以實(shí)際開發(fā)的一個(gè)基于J2ME平臺(tái)的手機(jī)應(yīng)用功能為基礎(chǔ),進(jìn)行了相關(guān)理論和技術(shù)的分析。 </p><p><

25、b>  1.3論文組織結(jié)構(gòu)</b></p><p>  本論文共分為六章,各章節(jié)的主要內(nèi)容安排如下</p><p>  第一章緒論簡單陳述了移動(dòng)終端在當(dāng)今社會(huì)中的發(fā)展,以及選擇J2ME作為移動(dòng)終端開發(fā)的優(yōu)勢,并簡要分析了能力協(xié)商的需求。 第二章詳細(xì)介紹了J2ME平臺(tái)的體系結(jié)構(gòu),結(jié)合項(xiàng)目內(nèi)容闡述了J2ME技術(shù)在移動(dòng)終端中的應(yīng)用。 第三章對(duì)手機(jī)音樂播放器進(jìn)行了系統(tǒng)的分析。 第

26、四章系統(tǒng)的介紹了采用J2ME做出來的結(jié)果。 第五章針對(duì)本文做了簡要的總結(jié)與對(duì)下一步的研究工作的展望。 最后是本文的參考文獻(xiàn)列表和致謝。</p><p>  第二章 J2ME體系結(jié)構(gòu)及技術(shù)簡介</p><p>  2.1 J2ME 的概況</p><p>  J2ME 的全稱是 Java2 Micro Edition (J2ME)——Java2 技術(shù)微型版,與 J2S

27、E, J2EE 一樣都是有美國 SUN 微系統(tǒng)公司提出的 JAVA 技術(shù)規(guī)范.</p><p>  2.2 J2ME 簡介</p><p>  J2ME 是為了能夠開發(fā)運(yùn)行在小型設(shè)備,獨(dú)立設(shè)備,互聯(lián)移動(dòng)設(shè)備,嵌入式設(shè) 備上的 JAVA 應(yīng)用程序而被提出的.J2ME 是建立在一個(gè)由概要描述,配置,JAVA 虛擬機(jī)和操作系統(tǒng)等部分組成的標(biāo)準(zhǔn)架構(gòu)之上的,這些內(nèi)容共同組成了完整的 J2ME 實(shí)時(shí)運(yùn)

28、行環(huán)境.它的技術(shù)核心是由一個(gè) JAVA 虛擬機(jī)( JVM )及一套適合 運(yùn)行在上述設(shè)備環(huán)境上的 API 接口構(gòu)成. J2ME 在 1999 年的 JavaOne 開發(fā)人員大會(huì)上初次亮相,它的目標(biāo)是面向智能 無線設(shè)備和小型計(jì)算設(shè)備的開發(fā)人員,這些開發(fā)人員需要在他們的產(chǎn)品中整合跨 平臺(tái)的能力. 無線設(shè)備和小型計(jì)算設(shè)備的消費(fèi)者期望這些設(shè)備能夠有較高的性能.他們希 望小型計(jì)算設(shè)備有快速的響應(yīng)時(shí)間,與同種設(shè)備相兼容,擁有功能完備的應(yīng)用程 序.消費(fèi)

29、者希望桌面計(jì)算機(jī)和筆記本電腦上的軟件和功能同樣能夠運(yùn)行在移動(dòng)電 話和個(gè)人數(shù)字助理上. 為了滿足他們的需求,開發(fā)人員必須重新考慮他們?cè)O(shè)計(jì)計(jì)算機(jī)系統(tǒng)的方式. 開發(fā)人員需要利用商業(yè)計(jì)算機(jī)上現(xiàn)有的前端和后端軟件的計(jì)算能力,并將這些能 力傳遞到微型,移動(dòng)和無線的計(jì)算設(shè)備上.J2ME 能夠以最小的修改來實(shí)現(xiàn)這種傳 遞,如果</p><p>  2.2.1 J2ME 架構(gòu)</p><p>  J2ME

30、架構(gòu)的模塊化設(shè)計(jì)使應(yīng)用程序可以靈活適應(yīng)小型計(jì)算設(shè)備的限制. J2ME 架構(gòu)沒有替代小型計(jì)算設(shè)備的操作系統(tǒng).相反,J2ME 架構(gòu)由位于原生操作系統(tǒng)之 上的多層軟件組成,這些軟件共同稱為"連接有限設(shè)備配置" (Connected Limited Device Configuration, CLDC) .安裝在操作系統(tǒng)之上的 CLDC 形成了小型計(jì)算設(shè)備 的運(yùn)行時(shí)環(huán)境. J2ME 架構(gòu)由 3 個(gè)軟件層組成:第一層是包括在內(nèi)

31、的配置層,這個(gè)層次直接與 原生操作系統(tǒng)進(jìn)行交互. 配置層還處理 profile 和 JVM 之間的交互. 第二層是 profile 層, 由小型計(jì)算設(shè)備的應(yīng)用程序編程接口 (API) 的最小集合組成. 第三層是 Mobile Information Device Profile( MIDP )層.MIDP 層由用戶網(wǎng)絡(luò)連接,永久存儲(chǔ)和用戶 界面的 java API 組成.它還能夠訪問 CLDC 庫和 MIDP 庫. </p>

32、<p>  2.2.2 JVM ( 虛擬機(jī) )</p><p>  JVM 是專門為微型電子設(shè)備與資源受限設(shè)備如:手機(jī),尋呼機(jī),移動(dòng)互聯(lián)網(wǎng) 設(shè)備,家用微電子設(shè)備等設(shè)計(jì)的一種輕便,緊湊的 JAVA 虛擬機(jī). JVM 可以為微型電子設(shè)備提供一個(gè)完整的 JAVA 運(yùn)行環(huán)境, 除了一些微型設(shè)備 所必需的適當(dāng)?shù)墓δ苡兴煌?它是由 JAVA 虛擬機(jī)規(guī)范定義的真實(shí)的 JAVA 虛 擬機(jī).它是專門為那些受資源限

33、制,只有幾百 K 字節(jié)內(nèi)存的微型設(shè)備設(shè)計(jì)的. JVM 起初是由 SUN 微系統(tǒng)實(shí)驗(yàn)室為一個(gè)名叫"Spotless"的項(xiàng)目創(chuàng)建的.它的 目標(biāo)是為資源受限制的 Palm(是目前較為流行的掌上電腦操作系統(tǒng))可連接的電 子設(shè)備,實(shí)現(xiàn)一個(gè) java 虛擬機(jī). 基于上述原因,JVM 具有以下幾個(gè)特點(diǎn): (1)小,僅具有 40KB 至 80KB 的靜態(tài)內(nèi)存.(2)輕便,精巧. (3)模塊化并可定制. (4)盡可能完全緊湊的完成設(shè)計(jì)

34、目的. </p><p>  2.2.3 MIDP( 移動(dòng)信息設(shè)備簡表 )</p><p>  ( MIDP 是專門為互聯(lián)受限設(shè)備配置設(shè)計(jì)的,它為移動(dòng)設(shè)備提供了一套 API 集 合,MIDP 包含用戶界面類,持久存儲(chǔ)功能與網(wǎng)絡(luò)功能.它同時(shí)也包括一個(gè)供用戶 下載新應(yīng)用到終端設(shè)備的標(biāo)準(zhǔn)運(yùn)行環(huán)境. 運(yùn)行在 MIDP 下的小應(yīng)用程序叫做 MIDlet 移動(dòng)設(shè)備小應(yīng)用程序,它與 Applet 類似.

35、MIDP 要求平臺(tái)設(shè)備提供一個(gè)機(jī)制用來 存儲(chǔ)簡單的數(shù)據(jù)記錄,通過正常的平臺(tái)事件,比如重新啟動(dòng)和電池更新維護(hù)系統(tǒng) 的完整性. MIDP 是以 SUN, Motorola, Nokia 為中心的 MIDPEG 組織 (Mobile Information Profile Expert Group)所制訂出來使用在 CLDC 上的 Profile,是以能使用在移動(dòng)電 話,雙向?qū)χv機(jī),可無線通信的 PDA(個(gè)人數(shù)字助理)上面為前提設(shè)計(jì)出來的.

36、另外,像日本國內(nèi)的 NTT DoCoMo,J-PHONE,KDDI 等電信商與移動(dòng)電話制造 商也都曾參與了 MIDPEG. MIDP 是在 CLDC 的功能上附加提供適合目標(biāo)設(shè)備用的 GUI 與事件處理功 能.這樣一來,就可以當(dāng)成 MIDP 應(yīng)用程序(MIDlet</p><p>  第三章 系統(tǒng)需求分析和總體設(shè)計(jì)</p><p>  3.1 系統(tǒng)功能需求</p><p

37、>  本部分介紹我們制作的這個(gè)軟件希望去實(shí)現(xiàn)以及可以實(shí)現(xiàn)的一些功能,還有就是從總體上介紹我們?cè)趺捶治鲈O(shè)計(jì)這個(gè)軟件。</p><p>  3.1.1播放器界面</p><p>  本播放器界面我們是采用了QQ音樂的模式,如下圖:</p><p>  其中顏色有幾種不同變化,可通過按鍵來改變,這個(gè)會(huì)在總體設(shè)計(jì)介紹。</p><p>  3.

38、1.2播放的功能</p><p>  首先,音樂播放器實(shí)現(xiàn)的功能就是對(duì)音樂的播放,在這部分我們是把音樂內(nèi)嵌在程序中,通過public void playAudio(int snd) 實(shí)現(xiàn)了音樂的播放,即以下程序:</p><p>  public void playAudio(int snd) {</p><p>  // No player, create on

39、e</p><p>  if (sounds[snd] == null) {</p><p>  createSound(snd);</p><p><b>  }</b></p><p>  // Start player</p><p>  Player player = sounds[snd

40、];</p><p>  player.setLoopCount(10);// 這個(gè)地方是循環(huán)次數(shù)</p><p>  if (player != null) {</p><p><b>  try {</b></p><p>  player.start();</p><p>  } catch

41、 (MediaException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  }// 創(chuàng)建播放器開始播放歌曲</p><p>  而通過以下程序來實(shí)

42、現(xiàn)開始播放和停止播放的功能,這是用到了監(jiān)聽鍵盤鍵的方法,通過對(duì)start和stop鍵進(jìn)行監(jiān)聽,來達(dá)到控制開始和停止播放的功能。</p><p>  public void startSound(int snd) {</p><p><b>  try {</b></p><p>  sounds[snd].start();</p>

43、<p>  } catch (MediaException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }//播放音樂</b></p><p>  public void stopSound(

44、int snd) {</p><p>  if (sounds[snd] != null) {</p><p><b>  try {</b></p><p>  sounds[snd].stop();</p><p>  } catch (MediaException e) {</p><p>

45、  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }// 停止音樂</b></p><p><b>  其截圖的圖標(biāo)如下:</b></p>

46、<p>  3.1.3 音樂播放音量的控制</p><p>  (1)對(duì)音樂音量的控制,首先是靜音與不靜音,這個(gè)也會(huì)用到自己寫的函數(shù)public void letQuiet()和public void letNotQuiet()這兩個(gè)函數(shù)來控制,具體代碼這里不做介紹,其圖標(biāo)在手機(jī)屏幕上會(huì)有顯示,圖標(biāo)分別如下:</p><p>  off on</p>

47、<p>  (2)對(duì)音量的控制,體現(xiàn)在音量大小,這個(gè)我們會(huì)用到setVoiceLevel方面的內(nèi)容,通過VolumeControl變量來實(shí)現(xiàn)對(duì)音量大小的控制,而具體的sounds值我們會(huì)通過以下代碼獲得并調(diào)用進(jìn)而顯示在屏幕上:</p><p>  public int getVoiceLevel() {</p><p>  return volC.getLevel();<

48、/p><p>  }// 音量大小的獲得</p><p>  以下這個(gè)圖標(biāo)即音量大小在屏幕上的顯示:</p><p>  3.1.4 歌曲播放時(shí)間的顯示</p><p> ?。?)totalTime函數(shù),利用該函數(shù)得到歌曲的總時(shí)間,然后顯示在屏幕上,即</p><p>  這個(gè)總時(shí)間會(huì)始終一樣的顯示在屏幕上。</p&

49、gt;<p> ?。?)歌曲當(dāng)前播放時(shí)間,利用gettime 函數(shù)來得到當(dāng)前歌曲的播放時(shí)間,然后顯示在屏幕上,即 這個(gè)時(shí)間會(huì)隨著播放時(shí)間不斷變化的顯示在手機(jī)屏幕上。</p><p>  3.1.5 歌曲的快進(jìn)與快退</p><p>  這個(gè)功能其實(shí)與上面播放時(shí)間的顯示是一樣的,因?yàn)橹灰シ诺臅r(shí)間改變即能實(shí)現(xiàn)歌曲的快進(jìn)與快退,setTimeMusic函數(shù)來得到該時(shí)間,而長按前

50、進(jìn)鍵或者后退鍵即能達(dá)成這一目標(biāo)</p><p>  3.1.6進(jìn)度條的顯示</p><p>  在總體設(shè)計(jì)中會(huì)解釋,截圖如下:</p><p><b>  3.2 總體設(shè)計(jì)</b></p><p>  3.2.1播放器界面設(shè)計(jì)</p><p>  播放器界面是采用了比較大眾的一種方式,長寬比例按照

51、程序手機(jī)模板大小來制作,而界面上面具有的一些圖標(biāo)都是由以下程序來完成:</p><p>  public musicCanvas() {</p><p>  super(false);</p><p>  width = this.getWidth();</p><p>  height = this.getHeight();</p&g

52、t;<p>  this.setCommandListener(this);</p><p><b>  try {</b></p><p>  back = Image.createImage("/qq_music.png");</p><p>  back1 = Image.createImage(&quo

53、t;/qq_music2.png");</p><p>  back2 = Image.createImage("/qq_music1.png");</p><p>  meun1 = Image.createImage("/meun.png");</p><p>  circle = Image.createIma

54、ge("/circle.png");</p><p>  audio_on = Image.createImage("/audio_on.png");</p><p>  audio_off = Image.createImage("/audio_off.png");</p><p>  for (int

55、i = 0; i < 8; i++) {</p><p>  img[i] = Image.createImage("/pic/" + i + ".png");</p><p><b>  }</b></p><p>  } catch (IOException e) {</p>&l

56、t;p>  e.printStackTrace();</p><p><b>  }</b></p><p>  其中back1設(shè)置為灰色即以下界面</p><p>  其中back2設(shè)置為紅色,即:</p><p>  Back3設(shè)置為藍(lán)色,即:</p><p>  通過按鍵3來改變界面顏

57、色,是通過以下程序?qū)崿F(xiàn):</p><p>  if (bk == 1) {</p><p>  g.drawImage(back, 0, 0, Graphics.LEFT | Graphics.TOP);</p><p>  } else if (bk == 2) {</p><p>  g.drawImage(back1, 0, 0, Gr

58、aphics.LEFT | Graphics.TOP);</p><p>  } else if (bk == 3) {</p><p>  g.drawImage(back2, 0, 0, Graphics.LEFT | Graphics.TOP);</p><p><b>  }</b></p><p><b&

59、gt;  即改變界面顏色。</b></p><p><b>  3.2.2播放功能</b></p><p>  播放功能通過public void playAudio(int snd)函數(shù)來實(shí)現(xiàn),歌曲內(nèi)嵌在程序內(nèi),需要通過</p><p>  public void playAudio(int snd) {</p>&

60、lt;p>  // No player, create one</p><p>  if (sounds[snd] == null) {</p><p>  createSound(snd);</p><p><b>  }</b></p><p>  // Start player</p><

61、p>  Player player = sounds[snd];</p><p>  player.setLoopCount(10);// 這個(gè)地方是循環(huán)次數(shù)</p><p>  if (player != null) {</p><p><b>  try {</b></p><p>  player.start

62、();</p><p>  } catch (MediaException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p>  程序段來實(shí)現(xiàn)播放,至于播放暫

63、停則是對(duì)鍵盤按鍵的監(jiān)聽來實(shí)現(xiàn)的,這部分很簡單,程序如下:</p><p>  public void stopSound(int snd) {</p><p>  if (sounds[snd] != null) {</p><p><b>  try {</b></p><p>  sounds[snd].stop()

64、;</p><p>  } catch (MediaException e) {</p><p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }// 停止音

65、樂</b></p><p>  public void startSound(int snd) {</p><p><b>  try {</b></p><p>  sounds[snd].start();</p><p>  } catch (MediaException e) {</p>

66、<p>  e.printStackTrace();</p><p><b>  }</b></p><p><b>  }//播放音樂</b></p><p>  播放的初始音樂音量我們?cè)O(shè)置在50,即通過</p><p>  th.start();</p><p>

67、;  aud.setVoiceLevel(50, select_music);// 設(shè)置初始音量</p><p><b>  來實(shí)現(xiàn)。截圖如下:</b></p><p>  3.2.3對(duì)音量的控制</p><p> ?。?)首先確定靜音與否,這個(gè)是通過函數(shù)let quiet 和let not quiet 來實(shí)現(xiàn),程序如下:</p>

68、<p>  public void letQuiet() {</p><p>  volC.setMute(true);</p><p><b>  }// 設(shè)置靜音</b></p><p>  public void letNotQuiet() {</p><p>  volC.setMute(false

69、);</p><p><b>  }// 設(shè)置不靜音</b></p><p>  public boolean getQuiet() {</p><p>  return volC.isMuted();</p><p>  }// 獲得靜音與否的狀態(tài)</p><p>  靜音是通過按鍵8來獲得,通

70、過監(jiān)聽按鍵程序來實(shí)現(xiàn),即用audio off 表示靜音狀態(tài),讓按下按鍵8成為實(shí)現(xiàn)該狀態(tài)的事件,當(dāng)用戶按下按鍵8時(shí)程序會(huì)觸發(fā)該事件,實(shí)現(xiàn)靜音。</p><p><b> ?。?)改變音量大小</b></p><p>  也是通過鍵盤監(jiān)聽來實(shí)現(xiàn),很簡單,最大音量設(shè)置為100,最小音量設(shè)置為0,每次按鍵4或者6會(huì)減小或增大音量2。即以下程序段來實(shí)現(xiàn):</p>

71、<p>  case 55://減小音量</p><p>  now_volume = aud.getVoiceLevel();</p><p>  aud.setVoiceLevel((now_volume - 2), select_music);</p><p>  System.out.println(aud.getVoiceLevel());<

72、;/p><p><b>  break;</b></p><p>  case 57://增大音量</p><p>  now_volume = aud.getVoiceLevel();</p><p>  aud.setVoiceLevel((now_volume + 2), select_music);</p>

73、;<p>  System.out.println(aud.getVoiceLevel());</p><p><b>  break;</b></p><p>  程序中的case 55和case57分別代表按鍵4和按鍵6,即實(shí)現(xiàn)了鍵盤監(jiān)聽,完成對(duì)音量的控制。</p><p>  3.2.4歌曲的播放時(shí)間</p>

74、<p><b>  歌曲的總體時(shí)間</b></p><p>  歌曲的總體時(shí)間都是固定的,它會(huì)顯示在屏幕右下角,如圖:</p><p><b>  歌曲的播放時(shí)間</b></p><p>  歌曲的播放時(shí)間是隨著歌曲播放不斷變化的,它由如下程序段獲得:</p><p>  public f

75、loat gettime(int snd) {</p><p>  return sounds[snd].getMediaTime();</p><p>  }// 獲得歌曲當(dāng)前播放時(shí)間</p><p>  該時(shí)間會(huì)被稱為new time 位置在total time 下面,隨著播放時(shí)間的變化而變化。</p><p>  3.2.5歌曲的快進(jìn)

76、與快退</p><p>  歌曲的快進(jìn)與快退其實(shí)就是歌曲播放時(shí)間的變化,也是對(duì)按鍵實(shí)現(xiàn)監(jiān)聽,長按前進(jìn)或者后退鍵會(huì)出現(xiàn)快進(jìn)或者快退的效果,而這個(gè)快進(jìn)或快退的時(shí)間多少由以下程序獲得:</p><p>  public void setTimeMusic(int snd, long gooing) {</p><p>  if (sounds[snd] != null)

77、{</p><p><b>  try {</b></p><p>  sounds[snd].setMediaTime(gooing);</p><p>  } catch (MediaException e) {</p><p>  e.printStackTrace();</p><p>&

78、lt;b>  }</b></p><p><b>  }</b></p><p>  }// 設(shè)置歌曲前進(jìn)后退的時(shí)間</p><p>  3.2.6歌曲進(jìn)度條的顯示</p><p>  以下程序段實(shí)現(xiàn)進(jìn)度條的顯示:</p><p>  if (key5) {</p>

79、<p>  Random();}</p><p><b>  // 進(jìn)度條</b></p><p>  f3 = (int) (f2 * 230 / f1);// 時(shí)間比</p><p>  // f3 = f2;</p><p>  g.fillRoundRect(5, 87, 230, 8, 10,

80、360);</p><p>  g.setColor(0, 128, 255);</p><p>  g.fillRoundRect(5, 87, f3, 8, 10, 360);</p><p>  g.drawImage(circle, f3, 84, Graphics.TOP | Graphics.LEFT);</p><p>  這是

81、在J2ME中慣有的一種進(jìn)度條設(shè)置方式,先用畫筆畫一個(gè)圓角矩形,給其填充顏色為黑色,作為進(jìn)度條的背景顏色,然后從左端畫一條藍(lán)色的圓角矩形,動(dòng)態(tài)的隨著時(shí)間的變化而覆蓋掉之前黑色的進(jìn)度條,從而顯示出播放的進(jìn)度。截圖如下:</p><p>  至此大致已完成了我們J2ME音樂播放器的分析設(shè)計(jì)過程。</p><p>  第四章 系統(tǒng)測試與檢驗(yàn)</p><p><b

82、>  4.1 測試概要</b></p><p>  4.1.1 測試的基本概念</p><p>  軟件開發(fā)過程必須伴有質(zhì)量保證活動(dòng)。軟件測試是軟件質(zhì)量保證的關(guān)鍵元素,代表了規(guī)約、設(shè)計(jì)和編碼的最終檢查。軟件測試是軟件質(zhì)量保證的關(guān)鍵階段,是對(duì)軟件設(shè)計(jì)和編碼的最終檢查。軟件測試的目的是找出錯(cuò)誤所在,而不是說明程序能正確地執(zhí)行它應(yīng)有的功能,也不是表明程序沒有錯(cuò)誤。相反,軟件測試

83、是為了發(fā)現(xiàn)錯(cuò)誤。</p><p>  4.1.2 測試的目的與地位 </p><p> ?。?) 測試是為了尋找錯(cuò)誤而運(yùn)行程序的過程。</p><p> ?。?)一個(gè)好的測試用例是指很可能找到迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測試。</p><p> ?。?) 一個(gè)成功的測試是揭示了迄今為止尚未發(fā)現(xiàn)的錯(cuò)誤的測試。</p><p&g

84、t;<b>  4.2 測試項(xiàng)目</b></p><p><b>  4.2.1測試界面</b></p><p>  進(jìn)入eclipse,通過程序觀察界面得出截圖如下:</p><p>  表明界面可以運(yùn)行,通過按鍵3可以改變界面顏色,不足的是界面略顯粗糙。</p><p>  4.2.2測試播放

85、暫停靜音</p><p>  經(jīng)過測試發(fā)現(xiàn),可以實(shí)現(xiàn)隨時(shí)播放,隨時(shí)暫停隨時(shí)靜音的功能。通過中央導(dǎo)航鍵可以實(shí)現(xiàn)暫停播放音樂,通過按鍵8可以實(shí)現(xiàn)靜音。</p><p>  4.2.3測試改變音量,快退快進(jìn)</p><p>  通過按鍵4和6可以實(shí)現(xiàn)減小和增加音量的功能,通過長按前進(jìn)鍵和后退鍵可以實(shí)現(xiàn)快進(jìn)和快退的功能。</p><p>  測試完成

86、,發(fā)現(xiàn)并無異常??梢哉_\(yùn)行,只是很多地方做的不足,該播放器雖然實(shí)現(xiàn)了音樂的播放,但是還有很多不足。該播放器必須事先放入設(shè)定的歌曲,不能事后自由導(dǎo)入,播放模式只能是單曲循環(huán),不能順序播放所有音樂,不可對(duì)之中的歌曲進(jìn)行添加刪除,目前也沒實(shí)現(xiàn)歌詞同步。所有這些都有待改進(jìn)和添加。</p><p><b>  第五章 總結(jié)</b></p><p>  5.1總結(jié)軟件及收獲

87、</p><p>  J2ME從技術(shù)上來說是很簡單的一個(gè)軟件,主要實(shí)現(xiàn)了播放音樂,切換界面,調(diào)節(jié)音量,快進(jìn)快退,靜音與否等功能。但是由于本人水平有限,做出來的軟件顯得很粗糙,界面做的很不好看,音樂智能內(nèi)嵌代碼播放等等缺點(diǎn),但由于本人技術(shù)水平實(shí)在太低,做成這樣也是花費(fèi)了很多的時(shí)間與精力??傊谶@一個(gè)月左右的時(shí)間里,經(jīng)過老師同學(xué)的幫助,我在J2ME方面獲益匪淺,在手機(jī)編程方面也有很大提高。由于時(shí)間的緊迫性,還有一些

88、絕妙的設(shè)想沒能實(shí)現(xiàn),仍感到絲絲遺憾,但是經(jīng)歷這一個(gè)月的努力,我對(duì)音樂播放器及手機(jī)編程的大體架構(gòu)有了很深刻的體會(huì),軟件工程開發(fā)思想也已慢慢植入我的思維之中。</p><p><b>  5.2 致謝語</b></p><p>  本文從擬定題目到定稿,歷時(shí)一個(gè)月。在本論文完成之際,首先要向我的指導(dǎo)老師致以誠摯的謝意。在論文的寫作過程中,老師給了我許許多多的幫助和關(guān)懷。在

89、老師的悉心指導(dǎo)中,我不僅學(xué)到了扎實(shí)的專業(yè)知識(shí),也在怎樣處人處事等方面收益很多。在此我謹(jǐn)向老師表示衷心的感謝和深深的敬意。 同時(shí),我要感謝我們學(xué)院給我們授課的各位老師,正是由于他們的傳道、授業(yè)、解惑,讓我學(xué)到了專業(yè)知識(shí),并從他們身上學(xué)到了如何求知治學(xué)、如何為人處事。我也要感謝我的母校皖江學(xué)院,是她提供了良好的學(xué)習(xí)環(huán)境和生活環(huán)境,讓我的大學(xué)生活豐富多姿,為我的人生留下精彩的一筆。 另外,衷心感謝我的同窗同學(xué)們和大學(xué)的朋友們,在我畢業(yè)論文寫作

90、中,與他們的探討交流使我受益頗多;同時(shí),他們也給了我很多無私的幫助和支持,我在次深表謝意。最后,向我的親愛的家人和親愛的朋友表示深深的謝意,他們給予我的愛、理解、關(guān)心和支持是我不斷前進(jìn)的動(dòng)力,學(xué)無止境。明天,將是我終身學(xué)習(xí)另一天的開始。</p><p>  第六章 參考文獻(xiàn)</p><p>  (1)朱海華,盧穎?;贘2ME的手機(jī)游戲系統(tǒng)的實(shí)現(xiàn)。科技資訊,2007年,14期:63-6

91、5</p><p> ?。?)李遠(yuǎn)泰,馮永晉?;贘2ME技術(shù)的手機(jī)游戲圖形處理。中國科技信息,2005年,16期:31-32</p><p> ?。?)陳小玉,楊新峰?;贘2ME的Java手機(jī)游戲開發(fā)技巧。電腦編程技巧與維護(hù),2005年,10期:69-71</p><p> ?。?)聞怡洋。J2ME MIDP無限設(shè)備編程指南。北京大學(xué)出版社,2004.7.&l

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(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)論