版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 畢業(yè)設計(論文)</b></p><p> 題目: 基于J2ME平臺環(huán)境下的手機音樂播放器</p><p> 學 院: 電子信息工程系 </p><p> 專 業(yè): 計算機科學與技術 </p><p> 2011年12月24日&
2、lt;/p><p><b> 摘 要</b></p><p> 隨著無線移動通信的高速發(fā)展及各種移動業(yè)務種類的快速增長,一切互聯(lián)網上的業(yè)務都在移動通信系統(tǒng)中得到應用。然而,由于用戶需求的原因,或者終端支持與否的因素,并非所有手機都能正確顯示同一信息內容。而且隨著客戶端設備的類型越來越多,人們對個性化服務的要求越來越高,個性化信息服務成為將來網絡信息服務發(fā)展的 一個重
3、要的方向。 移動終端是一種采用先進通信協(xié)議棧的復雜系統(tǒng),它需要具有與許多網絡設備互操作、支持先進而豐富的多媒體的應用程序。而且, 所有這些都必需在一個資源有限的嵌入式系統(tǒng)的約束條件下實現。 JAVA技術提供了跨平臺的能力,并支持多種器件設備。J2ME和MIDP(移動信息器件概覽)可在任何被支持的系統(tǒng)上運行同樣的應用程 序。JAVA技術為無線設備創(chuàng)建了一個全新的開發(fā)平臺,這一平臺可以 跨越多種設備和多個系統(tǒng)平臺。JAVA的跨平臺特性,使得
4、基于J2ME 的應用程序具有移植性好等其他優(yōu)勢,可以讓移動通信設備發(fā)揮出最 大的潛能。JAVA手機作為移動終端為今后移動通信發(fā)展提供了很好的 解決方案。 本文首先分析了J2ME在當前移動終端發(fā)展中所具有的重要角色, 選擇J2ME作為移動終端軟件開發(fā)平臺的優(yōu)</p><p><b> 關鍵詞:</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移動終端的發(fā)展現狀1</p><p> 1.
10、1.2個性化服務1</p><p> 1.1.3 J2ME在移動終端領域的優(yōu)勢與發(fā)展2</p><p><b> 1.2論文成果2</b></p><p> 1.3論文組織結構2</p><p> 第二章 J2ME體系結構及技術簡介2</p><p> 2.1J2ME 的概況
11、2</p><p> 2.2J2ME 簡介3</p><p> 2.2.1 J2ME 架構3</p><p> 2.2.2 JVM ( 虛擬機 )3</p><p> 2.2.3 MIDP( 移動信息設備簡表 )3</p><p> 第三章 系統(tǒng)需求分析和總體設計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歌曲播放時間的顯示6</p><p> 3.1.5歌曲的快進與快退6</p><
13、p> 3.2 總體設計6</p><p> 3.2.1播放器界面設計6</p><p> 3.2.2播放功能8</p><p> 3.2.3對音量的控制9</p><p> 3.2.4歌曲的播放時間10</p><p> 3.2.5歌曲的快進與快退10</p><p&g
14、t; 3.2.6歌曲進度條的顯示10</p><p> 第四章 系統(tǒng)測試與檢驗11</p><p> 4.1 測試概要11</p><p> 4.1.1測試的基本概念11</p><p> 4.1.2測試的目的與地位11</p><p> 4.2 測試項目11</p><
15、;p> 4.2.1測試界面11</p><p> 4.2.2測試播放暫停靜音12</p><p> 4.2.3測試改變音量,快退快進12</p><p> 第五章 總結12</p><p> 5.1總結軟件及收獲12</p><p> 5.2 致謝語13</p><
16、p> 第六章 參考文獻13</p><p><b> 引言</b></p><p><b> 1.1課題背景</b></p><p> 1.1.1移動終端的發(fā)展現狀 </p><p> 當今在全球信息與通信領域中,無線移動通信的發(fā)展之快最引人注目。在中 國,僅蜂窩移動通信用戶早
17、已跨過3億大關,而在全球15億的移動用戶已成事實。 中國在全球范圍內不僅用戶數增長最快,而且移動用戶與固定電話用戶之比的增 長率也是全球第一。 按照無線移動終端的發(fā)展歷程大致將其分為三類: 第一類是以語音通信為主的手機,也就是我們傳統(tǒng)意義上的手機,目前主要 面向低端市場,這類手機的硬件都是圍繞一個單一的基帶處理器搭建的,該處理 器執(zhí)行電信和其它簡單的應用任務。 第二類是增值業(yè)務手機,也叫多功能手機,這是目前需求量最大的手機。這 些手機一
18、般面向特定應用,一個功能強大的基帶處理器芯片實現移動終端的主要 功能,如果基帶處理器不能滿足諸如視頻處理等功能,可以配套使用一個應用協(xié) 處理器,它面向特定應用。 第三類是智能手機,即高端手機,曾被定義為“擁有操作系統(tǒng)并支持第三方 應用的手機”。這類手機中應用處理器成為系統(tǒng)的核心,而GSM/GPPS等通信 MODEM則成為實現連接功能的外設之一,此外還有其它通信外設,如WLAN、 藍牙、USB等,并且可能提供統(tǒng)一的擴展接口。智能手機通常要
19、采用復雜的嵌入 式操作系統(tǒng)為</p><p> 1.1.2個性化服務 </p><p> 個性化服務是網絡又稱為個性化定制服務,是根據客戶的特性提供具有針對 性的信息內容和系統(tǒng)功能;就是將用戶感興趣的內容提供給客戶,在某一特定的 網上功能和服務方式中,由用戶自己設定網上信息的來源方式、表現形式、特定 網上功能及其他網上服務方式等。個性化服務,就是針對不同的用戶,采用不同 的服務策略和方
20、式,提供不同的信息內容的服務。 在信息發(fā)布尤其是大范圍的信息發(fā)布時,所有的客戶端收到的信息都是相同 的,而如果客戶端移動設備的硬件或軟件類型不適合顯示服務器發(fā)布的信息,比 如屏幕不夠大、不支持某種解碼方式等,那客戶端在信息的接收上就會受到影響。 至于允許客戶端自己選擇顯示方式,那更是不可能的事情。而且隨著客戶端設備 的類型越來越多,人們對個性化服務的要求越來越高,這個問題更加突出。于是 人們開始探索客戶端與服務器端是否能進行“內容協(xié)商”
21、,即客戶端通過某種方式告訴服務器端,客戶端的信息表達環(huán)境是怎樣的,以及客戶需要什么樣的信息。而我們要做的手機音樂播放器也是需要個性化的,我們會在已有的播放器基礎上再添加以下個性化的元素進去,讓用戶用的舒心,省心。 </p><p> 1.13 J2ME在移動終端領域的優(yōu)勢與發(fā)展</p><p> JAVA語言是由美國SUN公司在1995年設計的,原是為機頂盒這種嵌入式系統(tǒng)設計的,
22、但并沒有在嵌入式領域得到發(fā)展,隨著internet的普及JAVA占領了PC 端和Server端,現在JAVA又回到了嵌入式領域。為了和PC端、Server端的JAVA 相區(qū)別,用于嵌入式系統(tǒng)的JAVA被稱為JAVA 2 Micro Edition簡稱J2ME。針對有限記憶體,顯示和處理能力的設備,主要是消費電子和嵌入式設備領域。 JAVA是惟一可以在各種操作設備上創(chuàng)建應用的技術。它極大地提高了w曲 的交互性,使Web從單純的靜態(tài)文本形式
23、變成了豐富多彩的可執(zhí)行程序形式。JAVA 的一個重要特點是平臺無關性。JAVA程序均被編譯成一種虛擬器代碼,在被稱為JAVA虛擬機的解釋器上執(zhí)行,因此只要一個操作系統(tǒng)帶有JAVA解釋器,或者 Web瀏覽器帶有JAVA解釋器,JAVA程序就可以執(zhí)行。JAVA語言的平臺無關性 成功地解決了Internet上的異質問題。 移動資訊設備的主要操作系統(tǒng)平臺都是開放的,J2ME的標準也是開放的,因 此基本上所有的主要操作系統(tǒng)平臺都支持或將支持J2M
24、E,這帶來的廣闊市場和真 正的“一次</p><p><b> 1.2論文成果</b></p><p> 本論文分析了J2ME在當前移動終端發(fā)展中所具有的重要角色,選擇J2ME作為移動終端軟件開發(fā)平臺的優(yōu)勢。以實際開發(fā)的一個基于J2ME平臺的手機應用功能為基礎,進行了相關理論和技術的分析。 </p><p><
25、b> 1.3論文組織結構</b></p><p> 本論文共分為六章,各章節(jié)的主要內容安排如下</p><p> 第一章緒論簡單陳述了移動終端在當今社會中的發(fā)展,以及選擇J2ME作為移動終端開發(fā)的優(yōu)勢,并簡要分析了能力協(xié)商的需求。 第二章詳細介紹了J2ME平臺的體系結構,結合項目內容闡述了J2ME技術在移動終端中的應用。 第三章對手機音樂播放器進行了系統(tǒng)的分析。 第
26、四章系統(tǒng)的介紹了采用J2ME做出來的結果。 第五章針對本文做了簡要的總結與對下一步的研究工作的展望。 最后是本文的參考文獻列表和致謝。</p><p> 第二章 J2ME體系結構及技術簡介</p><p> 2.1 J2ME 的概況</p><p> J2ME 的全稱是 Java2 Micro Edition (J2ME)——Java2 技術微型版,與 J2S
27、E, J2EE 一樣都是有美國 SUN 微系統(tǒng)公司提出的 JAVA 技術規(guī)范.</p><p> 2.2 J2ME 簡介</p><p> J2ME 是為了能夠開發(fā)運行在小型設備,獨立設備,互聯(lián)移動設備,嵌入式設 備上的 JAVA 應用程序而被提出的.J2ME 是建立在一個由概要描述,配置,JAVA 虛擬機和操作系統(tǒng)等部分組成的標準架構之上的,這些內容共同組成了完整的 J2ME 實時運
28、行環(huán)境.它的技術核心是由一個 JAVA 虛擬機( JVM )及一套適合 運行在上述設備環(huán)境上的 API 接口構成. J2ME 在 1999 年的 JavaOne 開發(fā)人員大會上初次亮相,它的目標是面向智能 無線設備和小型計算設備的開發(fā)人員,這些開發(fā)人員需要在他們的產品中整合跨 平臺的能力. 無線設備和小型計算設備的消費者期望這些設備能夠有較高的性能.他們希 望小型計算設備有快速的響應時間,與同種設備相兼容,擁有功能完備的應用程 序.消費
29、者希望桌面計算機和筆記本電腦上的軟件和功能同樣能夠運行在移動電 話和個人數字助理上. 為了滿足他們的需求,開發(fā)人員必須重新考慮他們設計計算機系統(tǒng)的方式. 開發(fā)人員需要利用商業(yè)計算機上現有的前端和后端軟件的計算能力,并將這些能 力傳遞到微型,移動和無線的計算設備上.J2ME 能夠以最小的修改來實現這種傳 遞,如果</p><p> 2.2.1 J2ME 架構</p><p> J2ME
30、架構的模塊化設計使應用程序可以靈活適應小型計算設備的限制. J2ME 架構沒有替代小型計算設備的操作系統(tǒng).相反,J2ME 架構由位于原生操作系統(tǒng)之 上的多層軟件組成,這些軟件共同稱為"連接有限設備配置" (Connected Limited Device Configuration, CLDC) .安裝在操作系統(tǒng)之上的 CLDC 形成了小型計算設備 的運行時環(huán)境. J2ME 架構由 3 個軟件層組成:第一層是包括在內
31、的配置層,這個層次直接與 原生操作系統(tǒng)進行交互. 配置層還處理 profile 和 JVM 之間的交互. 第二層是 profile 層, 由小型計算設備的應用程序編程接口 (API) 的最小集合組成. 第三層是 Mobile Information Device Profile( MIDP )層.MIDP 層由用戶網絡連接,永久存儲和用戶 界面的 java API 組成.它還能夠訪問 CLDC 庫和 MIDP 庫. </p>
32、<p> 2.2.2 JVM ( 虛擬機 )</p><p> JVM 是專門為微型電子設備與資源受限設備如:手機,尋呼機,移動互聯(lián)網 設備,家用微電子設備等設計的一種輕便,緊湊的 JAVA 虛擬機. JVM 可以為微型電子設備提供一個完整的 JAVA 運行環(huán)境, 除了一些微型設備 所必需的適當的功能有所不同外,它是由 JAVA 虛擬機規(guī)范定義的真實的 JAVA 虛 擬機.它是專門為那些受資源限
33、制,只有幾百 K 字節(jié)內存的微型設備設計的. JVM 起初是由 SUN 微系統(tǒng)實驗室為一個名叫"Spotless"的項目創(chuàng)建的.它的 目標是為資源受限制的 Palm(是目前較為流行的掌上電腦操作系統(tǒng))可連接的電 子設備,實現一個 java 虛擬機. 基于上述原因,JVM 具有以下幾個特點: (1)小,僅具有 40KB 至 80KB 的靜態(tài)內存.(2)輕便,精巧. (3)模塊化并可定制. (4)盡可能完全緊湊的完成設計
34、目的. </p><p> 2.2.3 MIDP( 移動信息設備簡表 )</p><p> ( MIDP 是專門為互聯(lián)受限設備配置設計的,它為移動設備提供了一套 API 集 合,MIDP 包含用戶界面類,持久存儲功能與網絡功能.它同時也包括一個供用戶 下載新應用到終端設備的標準運行環(huán)境. 運行在 MIDP 下的小應用程序叫做 MIDlet 移動設備小應用程序,它與 Applet 類似.
35、MIDP 要求平臺設備提供一個機制用來 存儲簡單的數據記錄,通過正常的平臺事件,比如重新啟動和電池更新維護系統(tǒng) 的完整性. MIDP 是以 SUN, Motorola, Nokia 為中心的 MIDPEG 組織 (Mobile Information Profile Expert Group)所制訂出來使用在 CLDC 上的 Profile,是以能使用在移動電 話,雙向對講機,可無線通信的 PDA(個人數字助理)上面為前提設計出來的.
36、另外,像日本國內的 NTT DoCoMo,J-PHONE,KDDI 等電信商與移動電話制造 商也都曾參與了 MIDPEG. MIDP 是在 CLDC 的功能上附加提供適合目標設備用的 GUI 與事件處理功 能.這樣一來,就可以當成 MIDP 應用程序(MIDlet</p><p> 第三章 系統(tǒng)需求分析和總體設計</p><p> 3.1 系統(tǒng)功能需求</p><p
37、> 本部分介紹我們制作的這個軟件希望去實現以及可以實現的一些功能,還有就是從總體上介紹我們怎么分析設計這個軟件。</p><p> 3.1.1播放器界面</p><p> 本播放器界面我們是采用了QQ音樂的模式,如下圖:</p><p> 其中顏色有幾種不同變化,可通過按鍵來改變,這個會在總體設計介紹。</p><p> 3.
38、1.2播放的功能</p><p> 首先,音樂播放器實現的功能就是對音樂的播放,在這部分我們是把音樂內嵌在程序中,通過public void playAudio(int snd) 實現了音樂的播放,即以下程序:</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);// 這個地方是循環(huán)次數</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> 而通過以下程序來實
42、現開始播放和停止播放的功能,這是用到了監(jiān)聽鍵盤鍵的方法,通過對start和stop鍵進行監(jiān)聽,來達到控制開始和停止播放的功能。</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> 其截圖的圖標如下:</b></p>
46、<p> 3.1.3 音樂播放音量的控制</p><p> (1)對音樂音量的控制,首先是靜音與不靜音,這個也會用到自己寫的函數public void letQuiet()和public void letNotQuiet()這兩個函數來控制,具體代碼這里不做介紹,其圖標在手機屏幕上會有顯示,圖標分別如下:</p><p> off on</p>
47、<p> (2)對音量的控制,體現在音量大小,這個我們會用到setVoiceLevel方面的內容,通過VolumeControl變量來實現對音量大小的控制,而具體的sounds值我們會通過以下代碼獲得并調用進而顯示在屏幕上:</p><p> public int getVoiceLevel() {</p><p> return volC.getLevel();<
48、/p><p> }// 音量大小的獲得</p><p> 以下這個圖標即音量大小在屏幕上的顯示:</p><p> 3.1.4 歌曲播放時間的顯示</p><p> (1)totalTime函數,利用該函數得到歌曲的總時間,然后顯示在屏幕上,即</p><p> 這個總時間會始終一樣的顯示在屏幕上。</p&
49、gt;<p> ?。?)歌曲當前播放時間,利用gettime 函數來得到當前歌曲的播放時間,然后顯示在屏幕上,即 這個時間會隨著播放時間不斷變化的顯示在手機屏幕上。</p><p> 3.1.5 歌曲的快進與快退</p><p> 這個功能其實與上面播放時間的顯示是一樣的,因為只要播放的時間改變即能實現歌曲的快進與快退,setTimeMusic函數來得到該時間,而長按前
50、進鍵或者后退鍵即能達成這一目標</p><p> 3.1.6進度條的顯示</p><p> 在總體設計中會解釋,截圖如下:</p><p><b> 3.2 總體設計</b></p><p> 3.2.1播放器界面設計</p><p> 播放器界面是采用了比較大眾的一種方式,長寬比例按照
51、程序手機模板大小來制作,而界面上面具有的一些圖標都是由以下程序來完成:</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設置為灰色即以下界面</p><p> 其中back2設置為紅色,即:</p><p> Back3設置為藍色,即:</p><p> 通過按鍵3來改變界面顏
57、色,是通過以下程序實現:</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)函數來實現,歌曲內嵌在程序內,需要通過</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);// 這個地方是循環(huán)次數</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> 程序段來實現播放,至于播放暫
63、停則是對鍵盤按鍵的監(jiā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> 播放的初始音樂音量我們設置在50,即通過</p><p> th.start();</p><p>
67、; aud.setVoiceLevel(50, select_music);// 設置初始音量</p><p><b> 來實現。截圖如下:</b></p><p> 3.2.3對音量的控制</p><p> ?。?)首先確定靜音與否,這個是通過函數let quiet 和let not quiet 來實現,程序如下:</p>
68、<p> public void letQuiet() {</p><p> volC.setMute(true);</p><p><b> }// 設置靜音</b></p><p> public void letNotQuiet() {</p><p> volC.setMute(false
69、);</p><p><b> }// 設置不靜音</b></p><p> public boolean getQuiet() {</p><p> return volC.isMuted();</p><p> }// 獲得靜音與否的狀態(tài)</p><p> 靜音是通過按鍵8來獲得,通
70、過監(jiān)聽按鍵程序來實現,即用audio off 表示靜音狀態(tài),讓按下按鍵8成為實現該狀態(tài)的事件,當用戶按下按鍵8時程序會觸發(fā)該事件,實現靜音。</p><p><b> (2)改變音量大小</b></p><p> 也是通過鍵盤監(jiān)聽來實現,很簡單,最大音量設置為100,最小音量設置為0,每次按鍵4或者6會減小或增大音量2。即以下程序段來實現:</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,即實現了鍵盤監(jiān)聽,完成對音量的控制。</p><p> 3.2.4歌曲的播放時間</p>
74、<p><b> 歌曲的總體時間</b></p><p> 歌曲的總體時間都是固定的,它會顯示在屏幕右下角,如圖:</p><p><b> 歌曲的播放時間</b></p><p> 歌曲的播放時間是隨著歌曲播放不斷變化的,它由如下程序段獲得:</p><p> public f
75、loat gettime(int snd) {</p><p> return sounds[snd].getMediaTime();</p><p> }// 獲得歌曲當前播放時間</p><p> 該時間會被稱為new time 位置在total time 下面,隨著播放時間的變化而變化。</p><p> 3.2.5歌曲的快進
76、與快退</p><p> 歌曲的快進與快退其實就是歌曲播放時間的變化,也是對按鍵實現監(jiān)聽,長按前進或者后退鍵會出現快進或者快退的效果,而這個快進或快退的時間多少由以下程序獲得:</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> }// 設置歌曲前進后退的時間</p><p> 3.2.6歌曲進度條的顯示</p><p> 以下程序段實現進度條的顯示:</p><p> if (key5) {</p>
79、<p> Random();}</p><p><b> // 進度條</b></p><p> f3 = (int) (f2 * 230 / f1);// 時間比</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中慣有的一種進度條設置方式,先用畫筆畫一個圓角矩形,給其填充顏色為黑色,作為進度條的背景顏色,然后從左端畫一條藍色的圓角矩形,動態(tài)的隨著時間的變化而覆蓋掉之前黑色的進度條,從而顯示出播放的進度。截圖如下:</p><p> 至此大致已完成了我們J2ME音樂播放器的分析設計過程。</p><p> 第四章 系統(tǒng)測試與檢驗</p><p><b
82、> 4.1 測試概要</b></p><p> 4.1.1 測試的基本概念</p><p> 軟件開發(fā)過程必須伴有質量保證活動。軟件測試是軟件質量保證的關鍵元素,代表了規(guī)約、設計和編碼的最終檢查。軟件測試是軟件質量保證的關鍵階段,是對軟件設計和編碼的最終檢查。軟件測試的目的是找出錯誤所在,而不是說明程序能正確地執(zhí)行它應有的功能,也不是表明程序沒有錯誤。相反,軟件測試
83、是為了發(fā)現錯誤。</p><p> 4.1.2 測試的目的與地位 </p><p> (1) 測試是為了尋找錯誤而運行程序的過程。</p><p> (2)一個好的測試用例是指很可能找到迄今為止尚未發(fā)現的錯誤的測試。</p><p> ?。?) 一個成功的測試是揭示了迄今為止尚未發(fā)現的錯誤的測試。</p><p&g
84、t;<b> 4.2 測試項目</b></p><p><b> 4.2.1測試界面</b></p><p> 進入eclipse,通過程序觀察界面得出截圖如下:</p><p> 表明界面可以運行,通過按鍵3可以改變界面顏色,不足的是界面略顯粗糙。</p><p> 4.2.2測試播放
85、暫停靜音</p><p> 經過測試發(fā)現,可以實現隨時播放,隨時暫停隨時靜音的功能。通過中央導航鍵可以實現暫停播放音樂,通過按鍵8可以實現靜音。</p><p> 4.2.3測試改變音量,快退快進</p><p> 通過按鍵4和6可以實現減小和增加音量的功能,通過長按前進鍵和后退鍵可以實現快進和快退的功能。</p><p> 測試完成
86、,發(fā)現并無異常??梢哉_\行,只是很多地方做的不足,該播放器雖然實現了音樂的播放,但是還有很多不足。該播放器必須事先放入設定的歌曲,不能事后自由導入,播放模式只能是單曲循環(huán),不能順序播放所有音樂,不可對之中的歌曲進行添加刪除,目前也沒實現歌詞同步。所有這些都有待改進和添加。</p><p><b> 第五章 總結</b></p><p> 5.1總結軟件及收獲
87、</p><p> J2ME從技術上來說是很簡單的一個軟件,主要實現了播放音樂,切換界面,調節(jié)音量,快進快退,靜音與否等功能。但是由于本人水平有限,做出來的軟件顯得很粗糙,界面做的很不好看,音樂智能內嵌代碼播放等等缺點,但由于本人技術水平實在太低,做成這樣也是花費了很多的時間與精力。總之,在這一個月左右的時間里,經過老師同學的幫助,我在J2ME方面獲益匪淺,在手機編程方面也有很大提高。由于時間的緊迫性,還有一些
88、絕妙的設想沒能實現,仍感到絲絲遺憾,但是經歷這一個月的努力,我對音樂播放器及手機編程的大體架構有了很深刻的體會,軟件工程開發(fā)思想也已慢慢植入我的思維之中。</p><p><b> 5.2 致謝語</b></p><p> 本文從擬定題目到定稿,歷時一個月。在本論文完成之際,首先要向我的指導老師致以誠摯的謝意。在論文的寫作過程中,老師給了我許許多多的幫助和關懷。在
89、老師的悉心指導中,我不僅學到了扎實的專業(yè)知識,也在怎樣處人處事等方面收益很多。在此我謹向老師表示衷心的感謝和深深的敬意。 同時,我要感謝我們學院給我們授課的各位老師,正是由于他們的傳道、授業(yè)、解惑,讓我學到了專業(yè)知識,并從他們身上學到了如何求知治學、如何為人處事。我也要感謝我的母校皖江學院,是她提供了良好的學習環(huán)境和生活環(huán)境,讓我的大學生活豐富多姿,為我的人生留下精彩的一筆。 另外,衷心感謝我的同窗同學們和大學的朋友們,在我畢業(yè)論文寫作
90、中,與他們的探討交流使我受益頗多;同時,他們也給了我很多無私的幫助和支持,我在次深表謝意。最后,向我的親愛的家人和親愛的朋友表示深深的謝意,他們給予我的愛、理解、關心和支持是我不斷前進的動力,學無止境。明天,將是我終身學習另一天的開始。</p><p> 第六章 參考文獻</p><p> ?。?)朱海華,盧穎?;贘2ME的手機游戲系統(tǒng)的實現??萍假Y訊,2007年,14期:63-6
91、5</p><p> ?。?)李遠泰,馮永晉?;贘2ME技術的手機游戲圖形處理。中國科技信息,2005年,16期:31-32</p><p> ?。?)陳小玉,楊新峰?;贘2ME的Java手機游戲開發(fā)技巧。電腦編程技巧與維護,2005年,10期:69-71</p><p> ?。?)聞怡洋。J2ME MIDP無限設備編程指南。北京大學出版社,2004.7.&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設計---基于j2me平臺環(huán)境下的手機音樂播放器
- 畢業(yè)設計基于android手機平臺的音樂播放器
- 畢業(yè)設計(論文)基于android手機平臺的音樂播放器
- 畢業(yè)設計--基于 android 平臺的手機應用開發(fā)—音樂播放器
- 畢業(yè)設計---基于j2me的手機游戲開發(fā)
- 基于android手機平臺的音樂播放器 (2)
- 【畢業(yè)課題論文】android手機平臺音樂播放器
- 音樂播放器畢業(yè)設計
- 基于j2me平臺的手機游戲開發(fā)
- 基于j2me平臺的手機游戲開發(fā)
- 畢業(yè)論文設計 基于android手機平臺的音樂播放器
- 基于j2me的手機流媒體音頻播放器開發(fā) —系統(tǒng)mvc架構、用戶界面與播放引擎的設計與實現-畢業(yè)論文
- 基于j2me的手機流媒體音頻播放器開發(fā) —系統(tǒng)mvc架構、用戶界面與播放引擎的設計與實現-畢業(yè)論文
- 基于j2me平臺的手機應用開發(fā)-畢業(yè)論文
- 基于android手機平臺的音樂播放器-畢業(yè)論文
- j2me畢業(yè)論文-- j2me手機彩票軟件開發(fā)
- 音樂播放器畢業(yè)設計論文
- 基于android手機平臺的音樂播放器【畢業(yè)論文】
- 畢業(yè)論文基于android手機平臺的音樂播放器
- J2ME平臺手機游戲的設計與實現.pdf
評論
0/150
提交評論