




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、i 畢業(yè)設(shè)計(jì)(論文)畢業(yè)設(shè)計(jì)(論文)題目: 基于 j2me 平臺(tái)環(huán)境下的手機(jī)音樂(lè)播放器學(xué) 院: 電子信息工程系 專(zhuān) 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 班 級(jí): 2008 級(jí) 1 班 學(xué) 號(hào): 0882064 學(xué)生姓名: 指導(dǎo)老師: 2011 年 12 月 24 日ii摘 要隨著無(wú)線(xiàn)移動(dòng)通信的高速發(fā)展及各種移動(dòng)業(yè)務(wù)種類(lèi)的快速增長(zhǎng),一切互聯(lián)網(wǎng)上的業(yè)務(wù)都在移動(dòng)通信系統(tǒng)中得到應(yīng)用。然而,由于用戶(hù)需求的原因,或者終端支持與否的因素,并非所有手機(jī)都能正確顯示同一信息內(nèi)容。而且隨著客戶(hù)端設(shè)備的類(lèi)型越來(lái)越多,人們對(duì)個(gè)性化服務(wù)的要求越來(lái)越高,個(gè)性化信息服務(wù)成為將來(lái)網(wǎng)絡(luò)信息服務(wù)發(fā)展的 一個(gè)重要的方向。 移動(dòng)終端是一種采用先
2、進(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ù)為無(wú)線(xiàn)設(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
3、在當(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)鍵詞: midp j2me 音樂(lè)播放器iiiabstractwith 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
4、 user demand reasons, or terminal support or factors, not all mobile phone can correctly display 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 in
5、formation service is an important developing direction. the mobile terminal is a kind of advanced 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
6、 a resource-limited embedded system under the condition of realization. java technology provides 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 w
7、ireless device to create a new development platform, this platform can span multiple devices 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 gre
8、at potential. java mobile phone as the mobile terminal for future mobile communication development 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 act
9、ual development of a platform based on the j2me music player software, the relevant theory and technology analysis.key word.:midpj2memusic playeriv目錄摘 要 iiabstract.ii第一章 引言.11.1課題背景.11.1.1 移動(dòng)終端的發(fā)展現(xiàn)狀.11.1.2 個(gè)性化服務(wù).11.1.3 j2me 在移動(dòng)終端領(lǐng)域的優(yōu)勢(shì)與發(fā)展 .21.2 論文成果 .21.3 論文組織結(jié)構(gòu) .2第二章 j2me 體系結(jié)構(gòu)及技術(shù)簡(jiǎn)介.22.1j2me 的概況.22.2
10、j2me 簡(jiǎn)介.32.2.1 j2me 架構(gòu) .32.2.2 jvm ( 虛擬機(jī) ).32.2.3 midp( 移動(dòng)信息設(shè)備簡(jiǎn)表 ).3第三章 系統(tǒng)需求分析和總體設(shè)計(jì).43.1 系統(tǒng)功能需求.43.1.1 播放器界面.43.1.2 播放的功能.53.1.3 音樂(lè)播放音量的控制.63.1.4 歌曲播放時(shí)間的顯示.63.1.5 歌曲的快進(jìn)與快退.63.2 總體設(shè)計(jì).63.2.1 播放器界面設(shè)計(jì).63.2.2 播放功能.83.2.3 對(duì)音量的控制.93.2.4 歌曲的播放時(shí)間.103.2.5 歌曲的快進(jìn)與快退.103.2.6 歌曲進(jìn)度條的顯示.10第四章 系統(tǒng)測(cè)試與檢驗(yàn).11v4.1 測(cè)試概要.11
11、4.1.1 測(cè)試的基本概念.114.1.2 測(cè)試的目的與地位.114.2 測(cè)試項(xiàng)目.114.2.1 測(cè)試界面.114.2.2 測(cè)試播放暫停靜音.124.2.3 測(cè)試改變音量,快退快進(jìn).12第五章 總結(jié).125.1 總結(jié)軟件及收獲 .125.2 致謝語(yǔ).13第六章 參考文獻(xiàn).131第一章 引言1.1 課題背景1.1.1 移動(dòng)終端的發(fā)展現(xiàn)狀 當(dāng)今在全球信息與通信領(lǐng)域中,無(wú)線(xiàn)移動(dòng)通信的發(fā)展之快最引人注目。在中 國(guó),僅蜂窩移動(dòng)通信用戶(hù)早已跨過(guò)億大關(guān),而在全球億的移動(dòng)用戶(hù)已成事實(shí)。 中國(guó)在全球范圍內(nèi)不僅用戶(hù)數(shù)增長(zhǎng)最快,而且移動(dòng)用戶(hù)與固定電話(huà)用戶(hù)之比的增 長(zhǎng)率也是全球第一。 按照無(wú)線(xiàn)移動(dòng)終端的發(fā)展歷程大致
12、將其分為三類(lèi): 第一類(lèi)是以語(yǔ)音通信為主的手機(jī),也就是我們傳統(tǒng)意義上的手機(jī),目前主要 面向低端市場(chǎng),這類(lèi)手機(jī)的硬件都是圍繞一個(gè)單一的基帶處理器搭建的,該處理 器執(zhí)行電信和其它簡(jiǎn)單的應(yīng)用任務(wù)。 第二類(lèi)是增值業(yè)務(wù)手機(jī),也叫多功能手機(jī),這是目前需求量最大的手機(jī)。這 些手機(jī)一般面向特定應(yīng)用,一個(gè)功能強(qiáng)大的基帶處理器芯片實(shí)現(xiàn)移動(dòng)終端的主要 功能,如果基帶處理器不能滿(mǎn)足諸如視頻處理等功能,可以配套使用一個(gè)應(yīng)用協(xié) 處理器,它面向特定應(yīng)用。 第三類(lèi)是智能手機(jī),即高端手機(jī),曾被定義為“擁有操作系統(tǒng)并支持第三方 應(yīng)用的手機(jī)” 。這類(lèi)手機(jī)中應(yīng)用處理器成為系統(tǒng)的核心,而等通信 則成為實(shí)現(xiàn)連接功能的外設(shè)之一,此外還有其它
13、通信外設(shè),如、 藍(lán)牙、等,并且可能提供統(tǒng)一的擴(kuò)展接口。智能手機(jī)通常要采用復(fù)雜的嵌入 式操作系統(tǒng)為上層應(yīng)用提供統(tǒng)一的應(yīng)用接口。并且,智能手機(jī)多備有較大顯示屏, 具有計(jì)算和文字處理方面的功能。 從移動(dòng)業(yè)務(wù)的角度看,目前現(xiàn)有的業(yè)務(wù)種類(lèi)已經(jīng)是琳瑯滿(mǎn)目,一切互聯(lián)網(wǎng)上 的業(yè)務(wù)都在移動(dòng)通信系統(tǒng)中得到應(yīng)用,當(dāng)然,由于現(xiàn)有網(wǎng)絡(luò)質(zhì)量和帶寬的限制, 它還遠(yuǎn)不能給用戶(hù)以有線(xiàn)網(wǎng)絡(luò)的體驗(yàn),而且有些業(yè)務(wù)在目前條件下也只是概念上 的炒作。然而,并非所有的業(yè)務(wù)都能順利推出,其中有用戶(hù)需求的原因,也有終端支持與否的因素,并非所有終端都能對(duì)統(tǒng)一網(wǎng)站的內(nèi)容正確顯示,并非所有手機(jī)都能正確顯示同一信息內(nèi)容而且隨著客戶(hù)端設(shè)備的類(lèi)型越來(lái)越多
14、,人們對(duì)個(gè)性化服務(wù)的要求越來(lái)越高,個(gè)性化信息服務(wù)成為將來(lái)網(wǎng)絡(luò)信息服務(wù)發(fā)展的一個(gè)重要的方向。1.1.2 個(gè)性化服務(wù) 個(gè)性化服務(wù)是網(wǎng)絡(luò)又稱(chēng)為個(gè)性化定制服務(wù),是根據(jù)客戶(hù)的特性提供具有針對(duì) 性的信息內(nèi)容和系統(tǒng)功能;就是將用戶(hù)感興趣的內(nèi)容提供給客戶(hù),在某一特定的 網(wǎng)上功能和服務(wù)方式中,由用戶(hù)自己設(shè)定網(wǎng)上信息的來(lái)源方式、表現(xiàn)形式、特定 網(wǎng)上功能及其他網(wǎng)上服務(wù)方式等。個(gè)性化服務(wù),就是針對(duì)不同的用戶(hù),采用不同 的服務(wù)策略和方式,提供不同的信息內(nèi)容的服務(wù)。 在信息發(fā)布尤其是大范圍的信息發(fā)布時(shí),所有的客戶(hù)端收到的信息都是相同 的,而如果客戶(hù)端移動(dòng)設(shè)備的硬件或軟件類(lèi)型不適合顯示服務(wù)器發(fā)布的信息,比 如屏幕不夠大、不
15、支持某種解碼方式等,那客戶(hù)端在信息的接收上就會(huì)受到影響。 至于允許客戶(hù)端自己選擇顯示方式,那更是不可能的事情。而且隨著客戶(hù)端設(shè)備 的類(lèi)型越來(lái)越多,人們對(duì)個(gè)性化服務(wù)的要求越來(lái)越高,這個(gè)問(wèn)題更加突出。于是 人們開(kāi)始探索客戶(hù)端與服務(wù)器端是否能進(jìn)行“內(nèi)容協(xié)商” ,即客戶(hù)端通過(guò)某種方式告訴服務(wù)器端,客戶(hù)端的信息表達(dá)環(huán)境是怎樣的,以及客戶(hù)需要什么樣的信息。而我們要做的手機(jī)音樂(lè)播放器也是需要個(gè)性化的,我們會(huì)在已有的播放器基礎(chǔ)上再添加以下個(gè)性化的元素進(jìn)去,讓用戶(hù)用的舒心,省心。 21.13 j2me 在移動(dòng)終端領(lǐng)域的優(yōu)勢(shì)與發(fā)展 java 語(yǔ)言是由美國(guó) sun 公司在 1995 年設(shè)計(jì)的,原是為機(jī)頂盒這種嵌入式
16、系統(tǒng)設(shè)計(jì)的,但并沒(méi)有在嵌入式領(lǐng)域得到發(fā)展,隨著 internet 的普及java 占領(lǐng)了 pc 端和 server 端,現(xiàn)在 java 又回到了嵌入式領(lǐng)域。為了和 pc端、server 端的 java 相區(qū)別,用于嵌入式系統(tǒng)的 java 被稱(chēng)為 java 2 micro edition 簡(jiǎn)稱(chēng) 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 程序均被編譯成一種虛擬器代碼,在
17、被稱(chēng)為 java 虛擬機(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)電話(huà)能以 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ā)展中所具有的重要角色,選擇j2
19、me 作為移動(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ì)下一步的研究工作的展望。 最后是本文的參考文獻(xiàn)列表和致謝。 第二
20、章 j2me 體系結(jié)構(gòu)及技術(shù)簡(jiǎn)介2.1 j2me 的概況 j2me 的全稱(chēng)是 java2 micro edition (j2me)java2 技術(shù)微型版,與 3j2se, 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ī)( jvm )及一套適合 運(yùn)行在上述
21、設(shè)備環(huán)境上的 api 接口構(gòu)成. j2me 在 1999 年的 javaone 開(kāi)發(fā)人員大會(huì)上初次亮相,它的目標(biāo)是面向智能 無(wú)線(xiàn)設(shè)備和小型計(jì)算設(shè)備的開(kāi)發(fā)人員,這些開(kāi)發(fā)人員需要在他們的產(chǎn)品中整合跨 平臺(tái)的能力. 無(wú)線(xiàn)設(shè)備和小型計(jì)算設(shè)備的消費(fèi)者期望這些設(shè)備能夠有較高的性能.他們希 望小型計(jì)算設(shè)備有快速的響應(yīng)時(shí)間,與同種設(shè)備相兼容,擁有功能完備的應(yīng)用程 序.消費(fèi)者希望桌面計(jì)算機(jī)和筆記本電腦上的軟件和功能同樣能夠運(yùn)行在移動(dòng)電 話(huà)和個(gè)人數(shù)字助理上. 為了滿(mǎn)足他們的需求,開(kāi)發(fā)人員必須重新考慮他們?cè)O(shè)計(jì)計(jì)算機(jī)系統(tǒng)的方式. 開(kāi)發(fā)人員需要利用商業(yè)計(jì)算機(jī)上現(xiàn)有的前端和后端軟件的計(jì)算能力,并將這些能 力傳遞到微型,移
22、動(dòng)和無(wú)線(xiàn)的計(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)之 上的多層軟件組成,這些軟件共同稱(chēng)為連接有限設(shè)備配置 (connected limited device configuration, cldc)
23、.安裝在操作系統(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 層由用戶(hù)網(wǎng)絡(luò)連接,永久存儲(chǔ)和用戶(hù) 界面的 java api 組成.它還能夠訪問(wèn) cldc 庫(kù)和 midp 庫(kù). 2.2.2 jvm ( 虛擬機(jī) ) jvm 是專(zhuān)門(mén)為微型電
24、子設(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ī).它是專(zhuān)門(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)一個(gè) java 虛擬機(jī). 基于上述原因,jvm 具有以下幾個(gè)特點(diǎn):
25、(1)小,僅具有 40kb 至 80kb 的靜態(tài)內(nèi)存.(2)輕便,精巧. (3)模塊化并可定制. (4)盡可能完全緊湊的完成設(shè)計(jì)目的. 2.2.3 midp( 移動(dòng)信息設(shè)備簡(jiǎn)表 ) ( midp 是專(zhuān)門(mén)為互聯(lián)受限設(shè)備配置設(shè)計(jì)的,它為移動(dòng)設(shè)備提供了一套 api 集 合,midp 包含用戶(hù)界面類(lèi),持久存儲(chǔ)功能與網(wǎng)絡(luò)功能.它同時(shí)也包括一個(gè)供用4戶(hù) 下載新應(yīng)用到終端設(shè)備的標(biāo)準(zhǔn)運(yùn)行環(huán)境. 運(yùn)行在 midp 下的小應(yīng)用程序叫做 midlet 移動(dòng)設(shè)備小應(yīng)用程序,它與 applet 類(lèi)似.midp 要求平臺(tái)設(shè)備提供一個(gè)機(jī)制用來(lái) 存儲(chǔ)簡(jiǎn)單的數(shù)據(jù)記錄,通過(guò)正常的平臺(tái)事件,比如重新啟動(dòng)和電池更新維護(hù)系統(tǒng) 的完整性
26、. midp 是以 sun, motorola, nokia 為中心的 midpeg 組織 (mobile information profile expert group)所制訂出來(lái)使用在 cldc 上的 profile,是以能使用在移動(dòng)電 話(huà),雙向?qū)χv機(jī),可無(wú)線(xiàn)通信的 pda(個(gè)人數(shù)字助理)上面為前提設(shè)計(jì)出來(lái)的. 另外,像日本國(guó)內(nèi)的 ntt docomo,j-phone,kddi 等電信商與移動(dòng)電話(huà)制造 商也都曾參與了 midpeg. midp 是在 cldc 的功能上附加提供適合目標(biāo)設(shè)備用的 gui 與事件處理功 能.這樣一來(lái),就可以當(dāng)成 midp 應(yīng)用程序(midlet)來(lái)運(yùn)行了. m
27、idp 由于是由多個(gè)企業(yè)所共同策劃出來(lái)的開(kāi)放標(biāo)準(zhǔn), 因此主要的移動(dòng)電話(huà)制 造商也會(huì)制造出大量的對(duì)應(yīng)機(jī)種.也就是說(shuō),以 midp 為基準(zhǔn)所制作出來(lái)的應(yīng)用 程序,也將可以在流通于市面上的移動(dòng)電話(huà)上執(zhí)行. 另外, midp 不僅限于移動(dòng)電話(huà), 也已經(jīng)被移植到 pda palm os 上, 而以 midp for palm os 的名字來(lái)稱(chēng)呼(與 kjava 是不同的) .在不使用各電信商的擴(kuò)展 api 的時(shí)候,制作給移動(dòng)電話(huà)用的 midlet 也將可以使用在 palm os 上面.由于未來(lái) midp 也將會(huì)搭載到不同設(shè)備之上,也由于其兼容性高,只要寫(xiě)過(guò)一次程序,就可 以在其他移動(dòng)電話(huà)或是移動(dòng)電話(huà)以外
28、的設(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ì)介紹。53.1.2 播放的功能首先,音樂(lè)播放器實(shí)現(xiàn)的功能就是對(duì)音樂(lè)的播放,在這部分我們是把音樂(lè)內(nèi)嵌在程序中,通過(guò) public void playaudio(int snd) 實(shí)現(xiàn)了音樂(lè)的播放,即以下程序:public void playaudio(int snd) /
29、 no player, create oneif (soundssnd = null) createsound(snd);/ start playerplayer player = soundssnd;player.setloopcount(10);/ 這個(gè)地方是循環(huán)次數(shù)if (player != null) try player.start(); catch (mediaexception e) e.printstacktrace();/ 創(chuàng)建播放器開(kāi)始播放歌曲而通過(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)
30、始和停止播放的功能。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.printstacktrace();/ 停止音樂(lè)其截圖的圖標(biāo)如下:63.1.3 音樂(lè)播放音量的控制(1)對(duì)音樂(lè)音量的控制,首先是靜音與不靜音,這個(gè)也會(huì)用到自己寫(xiě)的函
31、數(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 getvoicelevel() return volc.getlevel();/ 音量大小的獲得以下這個(gè)圖標(biāo)即音量大小在屏幕上的顯示:3.1.4 歌曲播放時(shí)間
32、的顯示(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ù)來(lái)得到該時(shí)間,而長(zhǎng)按前進(jìn)鍵或者后退鍵即能達(dá)成這一目標(biāo)3.1.6 進(jìn)度條的顯示在總體設(shè)計(jì)中會(huì)解釋?zhuān)貓D如下: 3.2 總體設(shè)計(jì)3.2.1 播放器界面設(shè)計(jì) 播放器界面是采用了比較大眾
33、的一種方式,長(zhǎng)寬比例按照程序手機(jī)模板大小來(lái)制作,而界面上面具有的一些圖標(biāo)都是由以下程序來(lái)完成:public musiccanvas() super(false);width = this.getwidth();7height = this.getheight();this.setcommandlistener(this);try back = image.createimage(/qq_music.png);back1 = image.createimage(/qq_music2.png);back2 = image.createimage(/qq_music1.png);meun1 = im
34、age.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.createimage(/pic/ + i + .png); catch (ioexception e) e.printstacktrace();其中 back1 設(shè)置為灰色即以下界面其中 back2 設(shè)置為紅
35、色,即:8back3 設(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 (bk = 3) g.drawimage(back2, 0, 0, graphics.left | graphics.top);即改變界面顏色。3.2.2 播放功能播放功能通過(guò)public void playaudi
36、o(int snd)函數(shù)來(lái)實(shí)現(xiàn),歌曲內(nèi)嵌在程序內(nèi),需要通過(guò)public void playaudio(int snd) / no player, create oneif (soundssnd = null) 9createsound(snd);/ start playerplayer player = soundssnd;player.setloopcount(10);/ 這個(gè)地方是循環(huán)次數(shù)if (player != null) try player.start(); catch (mediaexception e) e.printstacktrace();程序段來(lái)實(shí)現(xiàn)播放,至于播放暫停則是
37、對(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(int snd) try soundssnd.start(); catch (mediaexception e) e.printstacktrace();/播放音樂(lè)播放的初始音樂(lè)音量我們?cè)O(shè)置在50,即通過(guò)th.start();aud.setvoice
38、level(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() 10volc.setmute(true);/ 設(shè)置靜音public void 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
39、 off 表示靜音狀態(tài),讓按下按鍵8成為實(shí)現(xiàn)該狀態(tài)的事件,當(dāng)用戶(hù)按下按鍵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.getvoicelevel();aud.setvoicelevel(now_volume - 2), select_music);system.out.println(aud.getvoicelevel();break;case 57:/增大音量now_volume = aud.getvo
40、icelevel();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ì)音量的控制。3.2.4 歌曲的播放時(shí)間(1) 歌曲的總體時(shí)間歌曲的總體時(shí)間都是固定的,它會(huì)顯示在屏幕右下角,如圖:(2) 歌曲的播放時(shí)間歌曲的播放時(shí)間是隨著歌曲播放不斷變化的,它由如下程序段獲得:public float gettime(int snd) return soundssnd.getmedia
41、time();/ 獲得歌曲當(dāng)前播放時(shí)間該時(shí)間會(huì)被稱(chēng)為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è)快進(jìn)或快退的時(shí)間多少由以下程序獲得:11public void settimemusic(int snd, long gooing) if (soundssnd != null) try soundssnd.setmediatime(gooing); catch (mediaexception e) e.printstackt
42、race();/ 設(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(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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度紅木家具定制與古建筑修復(fù)合同
- 長(zhǎng)春2025年度貨運(yùn)合同糾紛律師調(diào)解服務(wù)協(xié)議
- 2025年度租賃合同解除函及房屋租賃市場(chǎng)調(diào)研報(bào)告
- 產(chǎn)品入庫(kù)管理表格(零售業(yè)特定)
- 汽車(chē)維修技術(shù)故障診斷與排除試卷及答案解析
- 租賃平臺(tái)房東與租客權(quán)益保障協(xié)議
- 農(nóng)村環(huán)境保護(hù)與生態(tài)恢復(fù)項(xiàng)目合作合同書(shū)
- 鄉(xiāng)村新型產(chǎn)業(yè)開(kāi)發(fā)項(xiàng)目協(xié)議
- 史記中的人物故事深度解讀
- 鋪貨擔(dān)保合同合作協(xié)議
- 人文社科類(lèi)橫向課題技術(shù)服務(wù)合同5篇
- 網(wǎng)絡(luò)工程師(軟考)考試(重點(diǎn))題庫(kù)300題(含答案解析)
- 統(tǒng)編版八年級(jí)語(yǔ)文上冊(cè)第六單元作業(yè)設(shè)計(jì)
- 中建通風(fēng)與空調(diào)施工方案
- 2024-2025年江蘇專(zhuān)轉(zhuǎn)本英語(yǔ)歷年真題(含答案)
- 永磁滾筒設(shè)備操作規(guī)程
- 2024解析:第五章透鏡及其應(yīng)用-講核心(解析版)
- 《子宮肉瘤》課件
- 大班科學(xué)活動(dòng)小實(shí)驗(yàn)
- 新能源汽車(chē)概論課件 2.1認(rèn)知新能源汽車(chē)動(dòng)力電池技術(shù)
- 湖南財(cái)政經(jīng)濟(jì)學(xué)院《中國(guó)文化史》2021-2022學(xué)年第一學(xué)期期末試卷
評(píng)論
0/150
提交評(píng)論