基于J2ME平臺(tái)環(huán)境下的手機(jī)音樂(lè)播放器(畢業(yè)論文)_第1頁(yè)
基于J2ME平臺(tái)環(huán)境下的手機(jī)音樂(lè)播放器(畢業(yè)論文)_第2頁(yè)
基于J2ME平臺(tái)環(huán)境下的手機(jī)音樂(lè)播放器(畢業(yè)論文)_第3頁(yè)
基于J2ME平臺(tái)環(huán)境下的手機(jī)音樂(lè)播放器(畢業(yè)論文)_第4頁(yè)
基于J2ME平臺(tái)環(huán)境下的手機(jī)音樂(lè)播放器(畢業(yè)論文)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(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、基于 j2me 平臺(tái)環(huán)境下的手機(jī)音樂(lè)播放器 摘 要 隨著無(wú)線移動(dòng)通信的高速發(fā)展及各種移動(dòng)業(yè)務(wù)種類的快速增長(zhǎng),一切 互聯(lián)網(wǎng)上的業(yè)務(wù)都在移動(dòng)通信系統(tǒng)中得到應(yīng)用。然而,由于用戶需求的原 因,或者終端支持與否的因素,并非所有手機(jī)都能正確顯示同一信息內(nèi)容。 而且隨著客戶端設(shè)備的類型越來(lái)越多,人們對(duì)個(gè)性化服務(wù)的要求越來(lái)越高, 個(gè)性化信息服務(wù)成為將來(lái)網(wǎng)絡(luò)信息服務(wù)發(fā)展的 一個(gè)重要的方向。 移動(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)的 能力,并支

2、持多種器件設(shè)備。j2me 和 midp(移動(dòng)信息器件概覽)可在任 何被支持的系統(tǒng)上運(yùn)行同樣的應(yīng)用程 序。java 技術(shù)為無(wú)線設(shè)備創(chuàng)建了一 個(gè)全新的開(kāi)發(fā)平臺(tái),這一平臺(tái)可以 跨越多種設(shè)備和多個(gè)系統(tǒng)平臺(tái)。java 的跨平臺(tái)特性,使得基于 j2me 的應(yīng)用程序具有移植性好等其他優(yōu)勢(shì),可 以讓移動(dòng)通信設(shè)備發(fā)揮出最 大的潛能。java 手機(jī)作為移動(dòng)終端為今后移 動(dòng)通信發(fā)展提供了很好的 解決方案。 本文首先分析了 j2me 在當(dāng)前移動(dòng) 終端發(fā)展中所具有的重要角色, 選擇 j2me 作為移動(dòng)終端軟件開(kāi)發(fā)平臺(tái)的 優(yōu)勢(shì)。實(shí)際開(kāi)發(fā)了一個(gè)基于 j2me 平臺(tái)的音樂(lè)播放器軟件,進(jìn)行了相關(guān)理 論和技術(shù)的分析。 關(guān)鍵詞:

3、midp j2me 音樂(lè)播放器 abstract with the rapid development of wireless mobile communication 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 di

4、splay 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 service is an important developing direction. the mobile terminal is a kind of ad

5、vanced communication protocol stack for complex systems, it needs with the many network interoperability between devices, support for advanced and rich multimedia application. moreover, all of these must be in a resource-limited embedded system under the condition of realization. java technology pro

6、vides a cross-platform capabilities, and support for multiple devices. j2me and midp ( mobile information device profile ) can be in any supported system running the same application. java technology for the wireless device to create a new development platform, this platform can span multiple device

7、s and multiple system platform. the java cross platform characteristic, the application program based on j2me has good portability and other advantages, can make the mobile communication device to play the great potential. java mobile phone as the mobile terminal for future mobile communication deve

8、lopment provides a good solution. this paper firstly analyzes the current j2me in mobile terminal development in the important role, select j2me as a mobile terminal software development platform edge. the actual development of a platform based on the j2me music player software, the relevant theory

9、and technology analysis. key word.: midp j2me music player 目錄 摘 要 ii abstract.ii 第一章 引言.1 1.1課題背景.1 1.1.1 移動(dòng)終端的發(fā)展現(xiàn)狀.1 1.1.2 個(gè)性化服務(wù).1 1.1.3 j2me 在移動(dòng)終端領(lǐng)域的優(yōu)勢(shì)與發(fā)展 .2 1.2 論文成果 .2 1.3 論文組織結(jié)構(gòu) .2 第二章 j2me 體系結(jié)構(gòu)及技術(shù)簡(jiǎn)介.2 2.1j2me 的概況.2 2.2j2me 簡(jiǎn)介.3 2.2.1 j2me 架構(gòu) .3 2.2.2 jvm ( 虛擬機(jī) ).3 2.2.3 midp( 移動(dòng)信息設(shè)備簡(jiǎn)表 ).3 第三章

10、系統(tǒng)需求分析和總體設(shè)計(jì).4 3.1 系統(tǒng)功能需求.4 3.1.1 播放器界面.4 3.1.2 播放的功能.5 3.1.3 音樂(lè)播放音量的控制.6 3.1.4 歌曲播放時(shí)間的顯示.6 3.1.5 歌曲的快進(jìn)與快退.6 3.2 總體設(shè)計(jì).6 3.2.1 播放器界面設(shè)計(jì).6 3.2.2 播放功能.8 3.2.3 對(duì)音量的控制.9 3.2.4 歌曲的播放時(shí)間.10 3.2.5 歌曲的快進(jìn)與快退.10 3.2.6 歌曲進(jìn)度條的顯示.10 第四章 系統(tǒng)測(cè)試與檢驗(yàn).11 4.1 測(cè)試概要.11 4.1.1 測(cè)試的基本概念.11 4.1.2 測(cè)試的目的與地位.11 4.2 測(cè)試項(xiàng)目.11 4.2.1 測(cè)試界面

11、.11 4.2.2 測(cè)試播放暫停靜音.12 4.2.3 測(cè)試改變音量,快退快進(jìn).12 第五章 總結(jié).12 5.1 總結(jié)軟件及收獲 .12 5.2 致謝語(yǔ).13 第六章 參考文獻(xiàn).13 第一章 引言 1.1 課題背景 1.1.1 移動(dòng)終端的發(fā)展現(xiàn)狀 當(dāng)今在全球信息與通信領(lǐng)域中,無(wú)線移動(dòng)通信的發(fā)展之快最引人注目。在 中 國(guó),僅蜂窩移動(dòng)通信用戶早已跨過(guò)億大關(guān),而在全球億的移動(dòng)用戶已 成事實(shí)。 中國(guó)在全球范圍內(nèi)不僅用戶數(shù)增長(zhǎng)最快,而且移動(dòng)用戶與固定電話用 戶之比的增 長(zhǎng)率也是全球第一。 按照無(wú)線移動(dòng)終端的發(fā)展歷程大致將其分為 三類: 第一類是以語(yǔ)音通信為主的手機(jī),也就是我們傳統(tǒng)意義上的手機(jī),目前 主要

12、 面向低端市場(chǎng),這類手機(jī)的硬件都是圍繞一個(gè)單一的基帶處理器搭建的, 該處理 器執(zhí)行電信和其它簡(jiǎn)單的應(yīng)用任務(wù)。 第二類是增值業(yè)務(wù)手機(jī),也叫多 功能手機(jī),這是目前需求量最大的手機(jī)。這 些手機(jī)一般面向特定應(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)的核心,而等通 信 則成為實(shí)現(xiàn)連接功能的外設(shè)之一,此外還有其它通信外設(shè),如 、 藍(lán)牙、等,并且可能提供統(tǒng)一的擴(kuò)展接口。智能手機(jī)通常要

13、 采用復(fù)雜的嵌入 式操作系統(tǒng)為上層應(yīng)用提供統(tǒng)一的應(yīng)用接口。并且,智能手機(jī) 多備有較大顯示屏, 具有計(jì)算和文字處理方面的功能。 從移動(dòng)業(yè)務(wù)的角度看, 目前現(xiàn)有的業(yè)務(wù)種類已經(jīng)是琳瑯滿目,一切互聯(lián)網(wǎng)上 的業(yè)務(wù)都在移動(dòng)通信系統(tǒng) 中得到應(yīng)用,當(dāng)然,由于現(xiàn)有網(wǎng)絡(luò)質(zhì)量和帶寬的限制, 它還遠(yuǎn)不能給用戶以有 線網(wǎng)絡(luò)的體驗(yàn),而且有些業(yè)務(wù)在目前條件下也只是概念上 的炒作。然而,并非 所有的業(yè)務(wù)都能順利推出,其中有用戶需求的原因,也有終端支持與否的因素, 并非所有終端都能對(duì)統(tǒng)一網(wǎng)站的內(nèi)容正確顯示,并非所有手機(jī)都能正確顯示同 一信息內(nèi)容而且隨著客戶端設(shè)備的類型越來(lái)越多,人們對(duì)個(gè)性化服務(wù)的要求 越來(lái)越高,個(gè)性化信息服務(wù)成

14、為將來(lái)網(wǎng)絡(luò)信息服務(wù)發(fā)展的一個(gè)重要的方向。 1.1.2 個(gè)性化服務(wù) 個(gè)性化服務(wù)是網(wǎng)絡(luò)又稱為個(gè)性化定制服務(wù),是根據(jù)客戶的特性提供具有針 對(duì) 性的信息內(nèi)容和系統(tǒng)功能;就是將用戶感興趣的內(nèi)容提供給客戶,在某一特 定的 網(wǎng)上功能和服務(wù)方式中,由用戶自己設(shè)定網(wǎng)上信息的來(lái)源方式、表現(xiàn)形式、 特定 網(wǎng)上功能及其他網(wǎng)上服務(wù)方式等。個(gè)性化服務(wù),就是針對(duì)不同的用戶,采 用不同 的服務(wù)策略和方式,提供不同的信息內(nèi)容的服務(wù)。 在信息發(fā)布尤其是 大范圍的信息發(fā)布時(shí),所有的客戶端收到的信息都是相同 的,而如果客戶端移 動(dòng)設(shè)備的硬件或軟件類型不適合顯示服務(wù)器發(fā)布的信息,比 如屏幕不夠大、不 支持某種解碼方式等,那客戶端在信息

15、的接收上就會(huì)受到影響。 至于允許客戶 端自己選擇顯示方式,那更是不可能的事情。而且隨著客戶端設(shè)備 的類型越來(lái) 越多,人們對(duì)個(gè)性化服務(wù)的要求越來(lái)越高,這個(gè)問(wèn)題更加突出。于是 人們開(kāi)始 探索客戶端與服務(wù)器端是否能進(jìn)行“內(nèi)容協(xié)商” ,即客戶端通過(guò)某種方式告訴服 務(wù)器端,客戶端的信息表達(dá)環(huán)境是怎樣的,以及客戶需要什么樣的信息。而我 們要做的手機(jī)音樂(lè)播放器也是需要個(gè)性化的,我們會(huì)在已有的播放器基礎(chǔ)上再 添加以下個(gè)性化的元素進(jìn)去,讓用戶用的舒心,省心。 1.13 j2me 在移動(dòng)終端領(lǐng)域的優(yōu)勢(shì)與發(fā)展 java 語(yǔ)言是由美國(guó) sun 公司在 1995 年設(shè)計(jì)的,原是為機(jī)頂盒這種 嵌入式系統(tǒng)設(shè)計(jì)的,但并沒(méi)有在

16、嵌入式領(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 簡(jiǎn)稱 j2me。針對(duì)有限記憶體,顯示和處理能力的設(shè)備,主要是消費(fèi)電 子和嵌入式設(shè)備領(lǐng)域。 java 是惟一可以在各種操作設(shè)備上創(chuàng)建應(yīng)用的技術(shù)。 它極大地提高了曲 的交互性,使 web 從單純的靜態(tài)文本形式變成了豐富多 彩的可執(zhí)行程序形式。java 的一個(gè)重要特點(diǎn)是平臺(tái)無(wú)關(guān)性。java 程序均被 編譯成一種虛擬器代碼,在被稱為 j

17、ava 虛擬機(jī)的解釋器上執(zhí)行,因此只要一 個(gè)操作系統(tǒng)帶有 java 解釋器,或者 web 瀏覽器帶有 java 解釋器,java 程 序就可以執(zhí)行。java 語(yǔ)言的平臺(tái)無(wú)關(guān)性 成功地解決了 internet 上的異質(zhì)問(wèn)題。 移動(dòng)資訊設(shè)備的主要操作系統(tǒng)平臺(tái)都是開(kāi)放的,j2me 的標(biāo)準(zhǔn)也是開(kāi)放的,因 此基本上所有的主要操作系統(tǒng)平臺(tái)都支持或?qū)⒅С?j2me,這帶來(lái)的廣闊市場(chǎng) 和真 正的“一次編寫(xiě),到處執(zhí)行”是任何其他技術(shù)無(wú)法比擬的。對(duì)于開(kāi)發(fā)者而 言,可以不受作業(yè)系統(tǒng)的限制,不用擔(dān)心在這個(gè)多邊的市場(chǎng)上因平臺(tái)的變化而 影響自己的應(yīng)用。 j2me 和 midp 可在任何被支持的系統(tǒng)上運(yùn)行同樣的應(yīng)用程 序。

18、這樣,服務(wù)提供商也可采用來(lái)自多個(gè)制造商的不同的設(shè)備,而無(wú)需對(duì)每個(gè) 設(shè)備單獨(dú)進(jìn)行支持。 java 語(yǔ)言的跨平臺(tái)特性使第三方軟件開(kāi)發(fā)商可以很容易 地介入進(jìn)來(lái)開(kāi)發(fā)應(yīng) 用程序,也可以方便地將應(yīng)用程序安裝部署到移動(dòng)通信設(shè)備 上,大大縮短了開(kāi)發(fā)周期。j2me 提供的 http 協(xié)議,使移動(dòng)電話能以 client sever 的方式直接訪問(wèn)網(wǎng)絡(luò) 的全部信息,不同的 client 訪問(wèn)不同的文件,此外 還能訪問(wèn)本地存儲(chǔ)區(qū),實(shí)現(xiàn)交互式服務(wù),超出了現(xiàn)在的基于文本的靜態(tài)內(nèi)容服 務(wù)。本課題就是基于 j2me 開(kāi)發(fā)的在移動(dòng)終端運(yùn)行的音樂(lè)播放器。 1.2 論文成果 本論文分析了 j2me 在當(dāng)前移動(dòng)終端發(fā)展中所具有的重要

19、角色,選擇 j2me 作為移動(dòng)終端軟件開(kāi)發(fā)平臺(tái)的優(yōu)勢(shì)。以實(shí)際開(kāi)發(fā)的一個(gè)基于 j2me 平臺(tái)的 手機(jī)應(yīng)用功能為基礎(chǔ),進(jìn)行了相關(guān)理論和技術(shù)的分析。 1.3 論文組織結(jié)構(gòu) 本論文共分為六章,各章節(jié)的主要內(nèi)容安排如下 第一章緒論簡(jiǎn)單陳述了移動(dòng)終端在當(dāng)今社會(huì)中的發(fā)展,以及選擇 j2me 作為移動(dòng)終端開(kāi)發(fā)的優(yōu)勢(shì),并簡(jiǎn)要分析了能力協(xié)商的需求。 第二章詳細(xì) 介紹了 j2me 平臺(tái)的體系結(jié)構(gòu),結(jié)合項(xiàng)目?jī)?nèi)容闡述了 j2me 技術(shù)在移動(dòng)終端中 的應(yīng)用。 第三章對(duì)手機(jī)音樂(lè)播放器進(jìn)行了系統(tǒng)的分析。 第四章系統(tǒng)的介紹了 采用 j2me 做出來(lái)的結(jié)果。 第五章針對(duì)本文做了簡(jiǎn)要的總結(jié)與對(duì)下一步的研究 工作的展望。 最后是本文

20、的參考文獻(xiàn)列表和致謝。 第二章 j2me 體系結(jié)構(gòu)及技術(shù)簡(jiǎn)介 2.1 j2me 的概況 j2me 的全稱是 java2 micro edition (j2me)java2 技術(shù)微型版,與 j2se, j2ee 一樣都是有美國(guó) sun 微系統(tǒng)公司提出的 java 技術(shù)規(guī)范. 2.2 j2me 簡(jiǎn)介 j2me 是為了能夠開(kāi)發(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)行環(huán)境.它的技術(shù)核心是由一個(gè) java 虛擬機(jī)(

21、 jvm )及一套 適合 運(yùn)行在上述設(shè)備環(huán)境上的 api 接口構(gòu)成. j2me 在 1999 年的 javaone 開(kāi)發(fā)人員大會(huì)上初次亮相,它的目標(biāo)是面向智能 無(wú)線設(shè)備和小型計(jì)算設(shè)備的開(kāi) 發(fā)人員,這些開(kāi)發(fā)人員需要在他們的產(chǎn)品中整合跨 平臺(tái)的能力. 無(wú)線設(shè)備和小型 計(jì)算設(shè)備的消費(fèi)者期望這些設(shè)備能夠有較高的性能.他們希 望小型計(jì)算設(shè)備有 快速的響應(yīng)時(shí)間,與同種設(shè)備相兼容,擁有功能完備的應(yīng)用程 序.消費(fèi)者希望桌面 計(jì)算機(jī)和筆記本電腦上的軟件和功能同樣能夠運(yùn)行在移動(dòng)電 話和個(gè)人數(shù)字助理 上. 為了滿足他們的需求,開(kāi)發(fā)人員必須重新考慮他們?cè)O(shè)計(jì)計(jì)算機(jī)系統(tǒng)的方式. 開(kāi)發(fā)人員需要利用商業(yè)計(jì)算機(jī)上現(xiàn)有的前端和后

22、端軟件的計(jì)算能力,并將這些能 力傳遞到微型,移動(dòng)和無(wú)線的計(jì)算設(shè)備上.j2me 能夠以最小的修改來(lái)實(shí)現(xiàn)這種傳 遞,如果應(yīng)用程序的設(shè)計(jì)是可伸縮的,應(yīng)用程序就可以適應(yīng)小型計(jì)算設(shè)備上有限 的資源.j2me 為在小型電子設(shè)備上創(chuàng)建性能卓越的網(wǎng)絡(luò)應(yīng)用提供了一套完整的 解決 方案,能很好的解決軟件跨平臺(tái)的兼容性和安全性的問(wèn)題. 2.2.1 j2me 架構(gòu) j2me 架構(gòu)的模塊化設(shè)計(jì)使應(yīng)用程序可以靈活適應(yīng)小型計(jì)算設(shè)備的限制. j2me 架構(gòu)沒(méi)有替代小型計(jì)算設(shè)備的操作系統(tǒng).相反,j2me 架構(gòu)由位于原生操作 系統(tǒng)之 上的多層軟件組成,這些軟件共同稱為連接有限設(shè)備配置 (connected limited dev

23、ice configuration, cldc) .安裝在操作系統(tǒng)之上的 cldc 形成了小 型計(jì)算設(shè)備 的運(yùn)行時(shí)環(huán)境. j2me 架構(gòu)由 3 個(gè)軟件層組成:第一層是包括在內(nèi) 的配置層,這個(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 組成.它還能夠訪問(wèn) cldc 庫(kù)和 midp 庫(kù). 2

24、.2.2 jvm ( 虛擬機(jī) ) jvm 是專門(mén)為微型電子設(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ī). 它是專門(mén)為那些受資源限制,只有幾百 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)

25、一個(gè) java 虛擬機(jī). 基于上述原因,jvm 具有以下幾個(gè)特點(diǎn): (1)小,僅具有 40kb 至 80kb 的靜態(tài)內(nèi)存.(2)輕便,精巧. (3)模塊化并可定制. (4)盡可能完全緊 湊的完成設(shè)計(jì)目的. 2.2.3 midp( 移動(dòng)信息設(shè)備簡(jiǎn)表 ) ( midp 是專門(mén)為互聯(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 類似.midp 要求平臺(tái)設(shè)備提供一 個(gè)機(jī)制用來(lái) 存儲(chǔ)簡(jiǎn)

26、單的數(shù)據(jù)記錄,通過(guò)正常的平臺(tái)事件,比如重新啟動(dòng)和電池更 新維護(hù)系統(tǒng) 的完整性. midp 是以 sun, motorola, nokia 為中心的 midpeg 組織 (mobile information profile expert group)所制訂出來(lái)使用在 cldc 上的 profile,是以能使用在移動(dòng)電 話,雙向?qū)χv機(jī),可無(wú)線通信的 pda(個(gè)人數(shù)字助理) 上面為前提設(shè)計(jì)出來(lái)的. 另外,像日本國(guó)內(nèi)的 ntt docomo,j-phone,kddi 等 電信商與移動(dòng)電話制造 商也都曾參與了 midpeg. midp 是在 cldc 的功能 上附加提供適合目標(biāo)設(shè)備用的 gui 與事件

27、處理功 能.這樣一來(lái),就可以當(dāng)成 midp 應(yīng)用程序(midlet)來(lái)運(yùn)行了. midp 由于是由多個(gè)企業(yè)所共同策劃出來(lái)的 開(kāi)放標(biāo)準(zhǔn), 因此主要的移動(dòng)電話制 造商也會(huì)制造出大量的對(duì)應(yīng)機(jī)種.也就是說(shuō), 以 midp 為基準(zhǔn)所制作出來(lái)的應(yīng)用 程序,也將可以在流通于市面上的移動(dòng)電話 上執(zhí)行. 另外, midp 不僅限于移動(dòng)電話, 也已經(jīng)被移植到 pda palm os 上, 而 以 midp for palm os 的名字來(lái)稱呼(與 kjava 是不同的) .在不使用各電信商的 擴(kuò)展 api 的時(shí)候,制作給移動(dòng)電話用的 midlet 也將可以使用在 palm os 上面.由 于未來(lái) midp 也將會(huì)

28、搭載到不同設(shè)備之上,也由于其兼容性高,只要寫(xiě)過(guò)一次程 序,就可 以在其他移動(dòng)電話或是移動(dòng)電話以外的設(shè)備上執(zhí)行;而這也就是它最大 的好處.。 第三章 系統(tǒng)需求分析和總體設(shè)計(jì) 3.1 系統(tǒng)功能需求 本部分介紹我們制作的這個(gè)軟件希望去實(shí)現(xiàn)以及可以實(shí)現(xiàn)的一些功能,還 有就是從總體上介紹我們?cè)趺捶治鲈O(shè)計(jì)這個(gè)軟件。 3.1.1 播放器界面 本播放器界面我們是采用了 qq 音樂(lè)的模式,如下圖: 其中顏色有幾種不同變化,可通過(guò)按鍵來(lái)改變,這個(gè)會(huì)在總體設(shè)計(jì)介紹。 3.1.2 播放的功能 首先,音樂(lè)播放器實(shí)現(xiàn)的功能就是對(duì)音樂(lè)的播放,在這部分我們是把音樂(lè) 內(nèi)嵌在程序中,通過(guò) public void playaudi

29、o(int snd) 實(shí)現(xiàn)了音樂(lè)的播放,即以下 程序: public void playaudio(int snd) / no player, create one if (soundssnd = null) createsound(snd); / start player player player = soundssnd; player.setloopcount(10);/ 這個(gè)地方是循環(huán)次數(shù) if (player != null) try player.start(); catch (mediaexception e) e.printstacktrace(); / 創(chuàng)建播放器開(kāi)始播放歌曲

30、 而通過(guò)以下程序來(lái)實(shí)現(xiàn)開(kāi)始播放和停止播放的功能,這是用到了監(jiān)聽(tīng)鍵盤(pán) 鍵的方法,通過(guò)對(duì) start 和 stop 鍵進(jìn)行監(jiān)聽(tīng),來(lái)達(dá)到控制開(kāi)始和停止播放的功能。 public void startsound(int snd) try soundssnd.start(); catch (mediaexception e) e.printstacktrace(); /播放音樂(lè) public void stopsound(int snd) if (soundssnd != null) try soundssnd.stop(); catch (mediaexception e) e.printstackt

31、race(); / 停止音樂(lè) 其截圖的圖標(biāo)如下: 3.1.3 音樂(lè)播放音量的控制 (1)對(duì)音樂(lè)音量的控制,首先是靜音與不靜音,這個(gè)也會(huì)用到自己寫(xiě)的函數(shù) public void letquiet()和 public void letnotquiet()這兩個(gè)函數(shù)來(lái)控制,具體代碼這 里不做介紹,其圖標(biāo)在手機(jī)屏幕上會(huì)有顯示,圖標(biāo)分別如下: off on (2)對(duì)音量的控制,體現(xiàn)在音量大小,這個(gè)我們會(huì)用到 setvoicelevel 方面的 內(nèi)容,通過(guò) volumecontrol 變量來(lái)實(shí)現(xiàn)對(duì)音量大小的控制,而具體的 sounds 值我們會(huì)通過(guò)以下代碼獲得并調(diào)用進(jìn)而顯示在屏幕上: public int

32、 getvoicelevel() return volc.getlevel(); / 音量大小的獲得 以下這個(gè)圖標(biāo)即音量大小在屏幕上的顯示: 3.1.4 歌曲播放時(shí)間的顯示 (1)totaltime 函數(shù),利用該函數(shù)得到歌曲的總時(shí)間,然后顯示在屏幕上,即 這個(gè)總時(shí)間會(huì)始終一樣的顯示在屏幕上。 (2)歌曲當(dāng)前播放時(shí)間,利用 gettime 函數(shù)來(lái)得到當(dāng)前歌曲的播放時(shí)間,然后 顯示在屏幕上,即 這個(gè)時(shí)間會(huì)隨著播放時(shí)間不斷變化的顯示 在手機(jī)屏幕上。 3.1.5 歌曲的快進(jìn)與快退 這個(gè)功能其實(shí)與上面播放時(shí)間的顯示是一樣的,因?yàn)橹灰シ诺臅r(shí)間改變即 能實(shí)現(xiàn)歌曲的快進(jìn)與快退,settimemusic 函數(shù)

33、來(lái)得到該時(shí)間,而長(zhǎng)按前進(jìn)鍵或 者后退鍵即能達(dá)成這一目標(biāo) 3.1.6 進(jìn)度條的顯示 在總體設(shè)計(jì)中會(huì)解釋,截圖如下: 3.2 總體設(shè)計(jì) 3.2.1 播放器界面設(shè)計(jì) 播放器界面是采用了比較大眾的一種方式,長(zhǎng)寬比例按照程序手機(jī)模板大小來(lái) 制作,而界面上面具有的一些圖標(biāo)都是由以下程序來(lái)完成: public musiccanvas() super(false); width = this.getwidth(); height = this.getheight(); this.setcommandlistener(this); try back = image.createimage(/qq_music.p

34、ng); back1 = image.createimage(/qq_music2.png); back2 = image.createimage(/qq_music1.png); meun1 = image.createimage(/meun.png); circle = image.createimage(/circle.png); audio_on = image.createimage(/audio_on.png); audio_off = image.createimage(/audio_off.png); for (int i = 0; i 8; i+) imgi = image.

35、createimage(/pic/ + i + .png); catch (ioexception e) e.printstacktrace(); 其中 back1 設(shè)置為灰色即以下界面 其中 back2 設(shè)置為紅色,即: back3 設(shè)置為藍(lán)色,即: 通過(guò)按鍵 3 來(lái)改變界面顏色,是通過(guò)以下程序?qū)崿F(xiàn): if (bk = 1) g.drawimage(back, 0, 0, graphics.left | graphics.top); else if (bk = 2) g.drawimage(back1, 0, 0, graphics.left | graphics.top); else if

36、 (bk = 3) g.drawimage(back2, 0, 0, graphics.left | graphics.top); 即改變界面顏色。 3.2.2 播放功能 播放功能通過(guò)public void playaudio(int snd)函數(shù)來(lái)實(shí)現(xiàn),歌曲內(nèi)嵌在程序內(nèi),需 要通過(guò) public void playaudio(int snd) / no player, create one if (soundssnd = null) createsound(snd); / start player player player = soundssnd; player.setloopcount(

37、10);/ 這個(gè)地方是循環(huán)次數(shù) if (player != null) try player.start(); catch (mediaexception e) e.printstacktrace(); 程序段來(lái)實(shí)現(xiàn)播放,至于播放暫停則是對(duì)鍵盤(pán)按鍵的監(jiān)聽(tīng)來(lái)實(shí)現(xiàn)的,這部分很 簡(jiǎn)單,程序如下: public void stopsound(int snd) if (soundssnd != null) try soundssnd.stop(); catch (mediaexception e) e.printstacktrace(); / 停止音樂(lè) public void startsound(in

38、t snd) try soundssnd.start(); catch (mediaexception e) e.printstacktrace(); /播放音樂(lè) 播放的初始音樂(lè)音量我們?cè)O(shè)置在50,即通過(guò) th.start(); aud.setvoicelevel(50, select_music);/ 設(shè)置初始音量 來(lái)實(shí)現(xiàn)。截圖如下: 3.2.3 對(duì)音量的控制 (1)首先確定靜音與否,這個(gè)是通過(guò)函數(shù)let quiet 和let not quiet 來(lái)實(shí)現(xiàn),程 序如下: public void letquiet() volc.setmute(true); / 設(shè)置靜音 public void

39、letnotquiet() volc.setmute(false); / 設(shè)置不靜音 public boolean getquiet() return volc.ismuted(); / 獲得靜音與否的狀態(tài) 靜音是通過(guò)按鍵8來(lái)獲得,通過(guò)監(jiān)聽(tīng)按鍵程序來(lái)實(shí)現(xiàn),即用audio off 表示靜音 狀態(tài),讓按下按鍵8成為實(shí)現(xiàn)該狀態(tài)的事件,當(dāng)用戶按下按鍵8時(shí)程序會(huì)觸發(fā)該 事件,實(shí)現(xiàn)靜音。 (2)改變音量大小 也是通過(guò)鍵盤(pán)監(jiān)聽(tīng)來(lái)實(shí)現(xiàn),很簡(jiǎn)單,最大音量設(shè)置為100,最小音量設(shè)置為0, 每次按鍵4或者6會(huì)減小或增大音量2。即以下程序段來(lái)實(shí)現(xiàn): case 55:/減小音量 now_volume = aud.get

40、voicelevel(); aud.setvoicelevel(now_volume - 2), select_music); system.out.println(aud.getvoicelevel(); break; case 57:/增大音量 now_volume = aud.getvoicelevel(); aud.setvoicelevel(now_volume + 2), select_music); system.out.println(aud.getvoicelevel(); break; 程序中的case 55和case57分別代表按鍵4和按鍵6,即實(shí)現(xiàn)了鍵盤(pán)監(jiān)聽(tīng),完成對(duì) 音

41、量的控制。 3.2.4 歌曲的播放時(shí)間 (1) 歌曲的總體時(shí)間 歌曲的總體時(shí)間都是固定的,它會(huì)顯示在屏幕右下角,如圖: (2) 歌曲的播放時(shí)間 歌曲的播放時(shí)間是隨著歌曲播放不斷變化的,它由如下程序段獲得: public float gettime(int snd) return soundssnd.getmediatime(); / 獲得歌曲當(dāng)前播放時(shí)間 該時(shí)間會(huì)被稱為new time 位置在total time 下面,隨著播放時(shí)間的變化而變化。 3.2.5 歌曲的快進(jìn)與快退 歌曲的快進(jìn)與快退其實(shí)就是歌曲播放時(shí)間的變化,也是對(duì)按鍵實(shí)現(xiàn)監(jiān)聽(tīng),長(zhǎng)按 前進(jìn)或者后退鍵會(huì)出現(xiàn)快進(jìn)或者快退的效果,而這個(gè)快

42、進(jìn)或快退的時(shí)間多少由 以下程序獲得: public void settimemusic(int snd, long gooing) if (soundssnd != null) try soundssnd.setmediatime(gooing); catch (mediaexception e) e.printstacktrace(); / 設(shè)置歌曲前進(jìn)后退的時(shí)間 3.2.6 歌曲進(jìn)度條的顯示 以下程序段實(shí)現(xiàn)進(jìn)度條的顯示: if (key5) random(); / 進(jìn)度條 f3 = (int) (f2 * 230 / f1);/ 時(shí)間比 / f3 = f2; g.fillroundrect

43、(5, 87, 230, 8, 10, 360); g.setcolor(0, 128, 255); g.fillroundrect(5, 87, f3, 8, 10, 360); g.drawimage(circle, f3, 84, graphics.top | graphics.left); 這是在 j2me 中慣有的一種進(jìn)度條設(shè)置方式,先用畫(huà)筆畫(huà)一個(gè)圓角矩形,給其 填充顏色為黑色,作為進(jìn)度條的背景顏色,然后從左端畫(huà)一條藍(lán)色的圓角矩形, 動(dòng)態(tài)的隨著時(shí)間的變化而覆蓋掉之前黑色的進(jìn)度條,從而顯示出播放的進(jìn)度。 截圖如下: 至此大致已完成了我們 j2me 音樂(lè)播放器的分析設(shè)計(jì)過(guò)程。 第四章 系統(tǒng)測(cè)試與檢驗(yàn) 4.1 測(cè)試概要 4.1.1 測(cè)試的基本概念 軟件開(kāi)發(fā)過(guò)程必須伴有質(zhì)量保證活動(dòng)。軟件測(cè)試是軟件質(zhì)量保證的關(guān)鍵元 素,代表了規(guī)約、設(shè)計(jì)和編碼的最終檢查。軟件測(cè)試是軟件質(zhì)量保證的關(guān)鍵階 段,是對(duì)軟件設(shè)計(jì)和編碼的最終檢查。軟件測(cè)試的目的是找出錯(cuò)誤所在,而不 是說(shuō)明程序能正確地執(zhí)行它應(yīng)有的功能,也不是表明程序沒(méi)有錯(cuò)誤。相反,軟 件測(cè)試是為了發(fā)現(xiàn)錯(cuò)誤。 4.1.2 測(cè)試的目的與地位 (1) 測(cè)

溫馨提示

  • 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)論