版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
嵌入式系統(tǒng)課程論文基于安卓的音樂播放器設(shè)計(jì)學(xué)生姓名:學(xué)號(hào):所在學(xué)院:專業(yè):摘要PAGE——摘要當(dāng)今社會(huì)的生活節(jié)奏越來越快,隨著硬件移動(dòng)設(shè)備的越來越先進(jìn),人們對(duì)移動(dòng)設(shè)備的要求也越來越高,從以前的追求技術(shù)到現(xiàn)在的追求視覺,因此,也逐步的提高了對(duì)系統(tǒng)的要求,本文主要是對(duì)Android系統(tǒng)上一款音樂播放器應(yīng)用程序的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行討論.Android是一個(gè)開源的系統(tǒng),它底層是基于Linux的操作系統(tǒng),本論文的音樂播放器采用了Android開源系統(tǒng)技術(shù),利用Java語言和Eclipse編輯工具對(duì)播放器進(jìn)行編寫。同時(shí)給出了詳細(xì)的系統(tǒng)設(shè)計(jì)過程、部分界面圖及主要功能運(yùn)行流程圖。本文還對(duì)高度過程中遇到的問題和解決方法進(jìn)行了詳細(xì)的討論,該音樂播放器集播放、暫停、停止、上一首、下一首、音量調(diào)節(jié)、歌詞顯示等功能于一體,性能良好,在Android系統(tǒng)中能獨(dú)立運(yùn)行。該播放器還擁有對(duì)手機(jī)文件瀏覽器的訪問功能、歌曲播放模式、以及歌詞開閉狀態(tài)的友好設(shè)置.MP3的全名是MPEGAudioLayer-3,是一種聲音文件的壓縮格式,由于本播放器只限于應(yīng)用層程序的探討,所以對(duì)具體的壓縮算法不作深究。關(guān)鍵詞:Android;開源系統(tǒng);音樂播放器數(shù)字信號(hào)處理課程論文前言本項(xiàng)目是一款基于Android手機(jī)平臺(tái)的音樂播放器,使Android手機(jī)擁有個(gè)性的多媒體播放器,使手機(jī)顯得更生動(dòng)靈活化,與人們更為接近,讓手機(jī)主人隨時(shí)隨地處于音樂視頻的旋律之中。使人們的生活更加多樣化。也使設(shè)計(jì)者更加熟練Android的技術(shù)和其它在市場(chǎng)上的特點(diǎn)。隨著科技的進(jìn)步,手機(jī)的功能也不斷的得到豐富,從最早的“大哥大”到現(xiàn)在的商務(wù)PDA手機(jī),智能手機(jī),音樂手機(jī)等等,功能也從單純的打電話發(fā)展到了發(fā)短信,聽歌,上網(wǎng)。手機(jī)和我們生活的聯(lián)系越來越緊密,手機(jī)的功能也是很多人們關(guān)注的焦點(diǎn)。目前手機(jī)的音樂播放功能已經(jīng)是大家比較關(guān)注的一個(gè)部分了,不少在人在購(gòu)買手機(jī)的時(shí)候都會(huì)關(guān)心手機(jī)的音樂播放的能力,這也足以看出目前大家對(duì)音樂播放功能的重視,所以一款性能良好的手機(jī)音樂播放器軟件一定會(huì)受到歡迎。和傳統(tǒng)的音樂播放器相比,手機(jī)播放音樂更加的容易攜帶,其他方面也都不輸于傳統(tǒng)音樂播放器,而且還具有網(wǎng)上聽音樂功能,所以開發(fā)一款受歡迎的手機(jī)音樂播放軟件是具有良好的市場(chǎng)和應(yīng)用前景的。一款專業(yè)的音樂播放軟件是手機(jī)中必不可少的要素,幾乎市場(chǎng)上所有的手機(jī)都擁有一個(gè)自帶的音樂播放軟件。不同手機(jī)平臺(tái)的手機(jī),所支持的音樂播放軟件也是各不相同,而現(xiàn)在最流行的手機(jī)平臺(tái)就是Google的Android手機(jī)平臺(tái),所以本課題就致力于開發(fā)出一款基于Android手機(jī)平臺(tái)的音樂播放器,來滿足用戶的使用需求。緒論研究背景及意義現(xiàn)今社會(huì)生活緊張,而欣賞音樂是其中最好的舒緩壓力的方式之一,本項(xiàng)目的目的是開發(fā)一個(gè)可以播放主流音樂文件格式的播放器,本設(shè)計(jì)的實(shí)現(xiàn)的這主要功能是播放Mp3,Wav多種格式的音樂文件,并且能夠控制播放,暫停,停止,上一曲,下一曲,音量調(diào)節(jié),視覺外觀,播放列表和歌曲文件的管理操作等多種播放控制功能,界面簡(jiǎn)明,操作簡(jiǎn)單。目前手機(jī)的音樂播放功能已經(jīng)是大家比較關(guān)注的一個(gè)部分了,不少在人在購(gòu)買手機(jī)的時(shí)候都會(huì)關(guān)心手機(jī)的音樂播放的能力,這也足以看出目前大家對(duì)音樂播放功能的重視,所以一款性能良好的手機(jī)音樂播放器軟件一定會(huì)受到歡迎。和傳統(tǒng)的音樂播放器相比,手機(jī)播放音樂更加的容易攜帶,其他方面也都不輸于傳統(tǒng)音樂播放器,而且還具有網(wǎng)上聽音樂功能,所以開發(fā)一款受歡迎的手機(jī)音樂播放軟件是具有良好的市場(chǎng)和應(yīng)用前景的。課題目的及意義本項(xiàng)目是一款基于Android手機(jī)平臺(tái)的音樂播放器,使Android手機(jī)擁有個(gè)性的多媒體播放器,使手機(jī)顯得更生動(dòng)靈活化,與人們更為接近,讓手機(jī)主人隨時(shí)隨地處于音樂視頻的旋律之中。使人們的生活更加多樣化。也使設(shè)計(jì)者更加熟練Android的技術(shù)和其它在市場(chǎng)上的特點(diǎn)。隨著科技的進(jìn)步,手機(jī)的功能也不斷的得到豐富,從最早的“大哥大”到現(xiàn)在的商務(wù)PDA手機(jī),智能手機(jī),音樂手機(jī)等等,功能也從單純的打電話發(fā)展到了發(fā)短信,聽歌,上網(wǎng)手機(jī)和我們生活的聯(lián)系越來越緊密,手機(jī)的功能也是很多人們關(guān)注的焦點(diǎn)。國(guó)內(nèi)外發(fā)展歷史及研究現(xiàn)狀國(guó)內(nèi)發(fā)展歷史及研究現(xiàn)狀首先簡(jiǎn)單的介紹一下Google的Android。Android原本是一家獨(dú)立的手機(jī)操作系統(tǒng)公司,2005年被Googel收購(gòu)。2007年11月,Googel宣布推出基于Linux的Android開放式手機(jī)操作系統(tǒng),沿襲至今,已發(fā)展到2.2版本(3.0尚在研)。此系統(tǒng)的“開放”尤其體現(xiàn)在任何手機(jī)制造商均可無需支付專利費(fèi)即可將此系統(tǒng)運(yùn)用在自己的手機(jī)。Google的以Linux為內(nèi)核的Android移動(dòng)手機(jī)平臺(tái)從誕生之日起短時(shí)間內(nèi)便在世界范圍里獲得了廣泛的關(guān)注。最近的報(bào)告顯示在中國(guó),一個(gè)擁有最大的人口,擁有最多的手機(jī)用戶,擁有巨大的增長(zhǎng)潛力的國(guó)家,這個(gè)系統(tǒng)的占有率沿著一個(gè)倒拋物線的增長(zhǎng)曲率成為手機(jī)操作系統(tǒng)中的霸主。同時(shí)國(guó)外的Android市場(chǎng)也正在如日中天的擴(kuò)展,據(jù)市場(chǎng)調(diào)研機(jī)構(gòu)NPDGroup最近發(fā)布的一份報(bào)告稱,今年第一季度基于Android操作系統(tǒng)的智能手機(jī)在美國(guó)智能手機(jī)總銷量中所占比例達(dá)到28%,首度超過蘋果iPhone,蘋果iPhone約為21%,相信在不久的將來會(huì)有更多的用戶選擇Android系統(tǒng)的手機(jī)或是無線終端設(shè)備。根據(jù)美國(guó)移動(dòng)廣告商AdMob的統(tǒng)計(jì),iPhoneOS在美國(guó)本土的網(wǎng)絡(luò)流量占了美國(guó)本土全部移動(dòng)互聯(lián)網(wǎng)流量的39%,而Android系統(tǒng)首次超越了它,達(dá)到了46%。不過要放在世界范圍內(nèi)來看,iPhoneOS仍占了46%,而Android只占了25%,還是排第二。不過仍能說明Android的來勢(shì)洶洶,能對(duì)蘋果造成威脅的果然只有Google。國(guó)外發(fā)展歷史及研究現(xiàn)狀國(guó)內(nèi)目前中國(guó)移動(dòng)、Moto、LG、三星、華為、MTK等正在積極籌備Android產(chǎn)品和相關(guān)的電子市場(chǎng),中國(guó)移動(dòng)率先推出了基于Android深度定制的Ophone系統(tǒng)和MobileMarke,聯(lián)想基于Android的樂phone手機(jī)也于5月17日正式上市,國(guó)內(nèi)其他電子廠商也紛紛表示到下半年會(huì)推出大量的基于Android的手機(jī)和MID產(chǎn)品,Moto更是放棄了原有的所有手機(jī)操作系統(tǒng),孤注一擲,計(jì)劃今年國(guó)內(nèi)市場(chǎng)有近20款A(yù)ndroid產(chǎn)品面世。3G時(shí)代的到來,給中國(guó)企業(yè)追趕國(guó)際廠商帶來了騰飛的機(jī)會(huì),據(jù)預(yù)測(cè)亞太區(qū)域?qū)頃?huì)占據(jù)全球Android市場(chǎng)中最大的收入份額。Android的代號(hào)序列會(huì)按甜點(diǎn)名字中首個(gè)英文字母(C、D、E、F)的排列順序,到目前為止android系統(tǒng)已經(jīng)有多個(gè)幫本:Android1.1發(fā)布于2009年2月主要特性:鬧鐘,API示例,瀏覽器,攝像頭,計(jì)算器,聯(lián)系人,開發(fā)工具包,撥號(hào)應(yīng)用,電子郵件,地圖,信息服務(wù),音樂,圖片,設(shè)置。2009年4月30日,官方1.5版本(Cupcake)的Android發(fā)布。主要的更新如下:拍攝/回放視頻,并支持上傳到y(tǒng)outube,支持立體聲藍(lán)牙耳機(jī),同時(shí)改善自動(dòng)配對(duì)性能,最新的采用WebKit技術(shù)的瀏覽器,支持拷貝/粘帖和頁面中搜索,gPS性能大大提高,屏幕虛擬鍵盤,主屏幕增加音樂播放器和相框widgets,應(yīng)用程序自動(dòng)隨著手機(jī)旋轉(zhuǎn)短信,Gmail,日歷,瀏覽器的用戶界面大幅改善,比如說Gmail現(xiàn)在可以批量刪除郵件了,相機(jī)啟動(dòng)速度加快,拍攝圖片可以直接上傳到picasa,來電照片顯示。2009年9月15日,1.6(Donut)版本SDK發(fā)布。主要的更新如下:完全重新設(shè)計(jì)的AndroidMarket,手勢(shì)支持,支持CDMA網(wǎng)絡(luò),文字轉(zhuǎn)語音系統(tǒng)(TXT-2-speech),快速搜索框,全新的拍照界面,應(yīng)用程序耗電查看,支持VPN,支持更多的屏幕分辨率,支持OpenCore2媒體引擎,新增面向視覺或聽覺困難人群的易用性插件。2009年10月26日,2.0(Eclair)版本SDK發(fā)布。主要的更新如下:優(yōu)化硬件速度,"CarHome"程序,支持更多的屏幕分辨率,重整界面,新的瀏覽器的用戶界面和支持HTML5,新的聯(lián)系人名單,更好的白色/黑色背景比率,改進(jìn)GoogleMaps3.1.2,支持MicrosoftExchange,支持內(nèi)置相機(jī)閃光燈,數(shù)字變焦,改進(jìn)的虛擬鍵盤,藍(lán)牙2.1Android的代號(hào)序列會(huì)按甜點(diǎn)名字中首個(gè)英文字母(C、D、E、F)的排列順序。下一個(gè)版本的Android將會(huì)命名為Froyo(凍酸奶,基于LinuxKernel2.6.32)。Froyo之后的版本的Android將會(huì)命名為Gingerbread(姜餅,基于LinuxKernel2.6.33/34)。本文主要研究的內(nèi)容本文的主要研究?jī)?nèi)容包括以下幾個(gè)方面:(1)查找相關(guān)書籍與文獻(xiàn),了解Android的構(gòu)架并搭建Android平臺(tái)。(2)查找相關(guān)資料,現(xiàn)階段基于Android平臺(tái)手機(jī)音樂播放器發(fā)展現(xiàn)狀以及相關(guān)功能。(3)在上述基礎(chǔ)上,提出所要做的手機(jī)播放器的相關(guān)功能如:播放本地歌曲,設(shè)置,播放列表,播放記錄等。(4)在Android平臺(tái)上完成該課題的軟件并進(jìn)行相應(yīng)的軟件測(cè)試。系統(tǒng)需求分析方案原理、特點(diǎn)、與選擇依據(jù)Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開源手機(jī)操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號(hào)稱是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。其最震撼人心之處在于Android手機(jī)系統(tǒng)的開放性和服務(wù)免費(fèi)。Android是一個(gè)對(duì)第三方軟件完全開放的平臺(tái),開發(fā)者在為其開發(fā)程序時(shí)擁有更大的自由度,突破了IPhone等只能添加為數(shù)不多的固定軟件的枷鎖;同時(shí)與WindowsMobile、Symbian等廠商不同,Android操作系統(tǒng)免費(fèi)向開發(fā)人員提供,這樣可以節(jié)省三成成本。設(shè)計(jì)的音樂播放器還應(yīng)滿足以下特點(diǎn):=1\*GB3①實(shí)用性:系統(tǒng)以用戶需求為目標(biāo),以方便用戶為原則。=2\*GB3②穩(wěn)定性:采用與音樂播放器軟件大小相應(yīng)的Android版本,使穩(wěn)定性更高。系統(tǒng)可行性分析設(shè)計(jì)一個(gè)符合基本要求的基于Android的音樂播放器系統(tǒng),要深入的了解Android的系統(tǒng)構(gòu)架以及Android應(yīng)用程序框架。Android的應(yīng)用程序框架:框架是應(yīng)用程序的核心,是所以參與開發(fā)的程序員共同所遵守的規(guī)則。以現(xiàn)階段Android技術(shù)發(fā)展水平,技術(shù)人員的技術(shù)配備,以及現(xiàn)有資源文檔的配備來說,實(shí)現(xiàn)本軟件是可能的。3G技術(shù)飛速發(fā)展,為滿足人們對(duì)音樂的追求,音樂播放器層出不從,然而市面上大多音樂播發(fā)器軟件都太難操作,或者音質(zhì)不好,不能給用戶以更好體驗(yàn),故提出開放一套更加人性化的手機(jī)播放器。系統(tǒng)功能需求系統(tǒng)的功能需求,我們分成三部分來概括,即播放器的基本控制需求,播放列表管理需求和播放器友好性需求。以下分別描述:(1)播放器的基本控制需求=1\*GB3①播放:雙擊播放列表中的歌曲進(jìn)行播放,播放時(shí)會(huì)將該歌曲的信息顯示的右邊的歌曲信息面板中。=2\*GB3②停止:在歌曲列表下方有一個(gè)小按鈕,當(dāng)歌曲正在播放時(shí),顯示的是可停止的按鈕,點(diǎn)擊則停止當(dāng)前播放的歌曲。(2)播放列表管理=1\*GB3①添加歌曲:選中歌曲類型后,單擊右鍵選擇添加歌曲或者點(diǎn)擊左下角的添加按鈕則彈出一個(gè)添加歌曲信息的會(huì)話框,填入歌曲信息。=2\*GB3②刪除歌曲:選中歌曲后,單擊右鍵選擇刪除歌曲或者點(diǎn)擊左下角的刪除則彈出確認(rèn)框。(3)播放器友好性要求=1\*GB3①視覺外觀:使用播放器時(shí),播放器根據(jù)歌曲文件的特性,通過視覺外觀動(dòng)態(tài)顯示,外觀優(yōu)美。=2\*GB3②系統(tǒng):使用播放器時(shí)能顯示播放器的狀態(tài),是播放還是暫停。本章小結(jié)通過從經(jīng)濟(jì)、技術(shù)、社會(huì)需求等方面對(duì)系統(tǒng)可行性進(jìn)行的理論分析;以及系統(tǒng)功能實(shí)現(xiàn)的分析,明確系統(tǒng)設(shè)計(jì)的目的。獲得項(xiàng)目系統(tǒng)的基本需求,以下從不同角度來描述系統(tǒng)的需求,并且使用用例圖來描述,系統(tǒng)的功能需求,我們分成四部分來概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器擴(kuò)展卡需求。播放器功能詳細(xì)設(shè)計(jì)音樂播放器登入界面與主界面Android的每一個(gè)可視化界面,都有其的唯一的布局配置文件,該文件里面有各種布局方式,和各種資源文件如圖像,文字,顏色的引用,程序在運(yùn)行時(shí),可以通過代碼對(duì)各配置文件進(jìn)行讀取。這樣就可以形成不同的可視化界面和炫麗的效果。播放器主界面是一個(gè)Activity,Android工程在每個(gè)activity啟動(dòng)的時(shí)候會(huì)首先執(zhí)行Oncreate()方法,如下代碼:@Override PublicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState);setContentView(R.layout.play_rack);}該方法主要執(zhí)行界面的初始化操作,Activity有個(gè)設(shè)置布局的方法:Context.setContentView(layoutResID),參數(shù)為資源ID,該Id在工程目錄res/layout下,主界面布局文件名為play_rack。下面為play_rack.xml布局文件代碼結(jié)構(gòu)如下:<?xmlversion="1.0"encoding="utf-8"?><AbsoluteLayout><LinearLayout></LinearLayout><SeekBar></SeekBar><LinearLayout></LinearLayout></AbsoluteLayout>在絕對(duì)布局<AbsoluteLayout>下嵌套兩種線性布局<LinearLayout>和<SeekBar>,第一個(gè)<LinearLayout>實(shí)現(xiàn)了標(biāo)題和歌曲名的顯示位置,通過<AbsoluteLayout>布局設(shè)置<LinearLayout>絕對(duì)坐標(biāo)來控制標(biāo)題的位置。每個(gè)布局內(nèi)可以放置多種Widget(窗體部件)例如:<TextView><ImageButton>等。每個(gè)Widget內(nèi)有多種屬性,可以設(shè)置該Widget的坐標(biāo),大小,背景和顏色等參數(shù)。在播放界面中,歌詞顯示為居中,實(shí)現(xiàn)方法代碼如下:<LinearLayoutandroid:orientation="horizontal"android:gravity="center"android:layout_height="wrap_content" android:layout_width="fill_parent"> <TextViewandroid:layout_height="wrap_content" android:textColor="#8deeee"android:id="@+id/lrcText" android:layout_width="wrap_content"></TextView></LinearLayout>××××如圖所示:各按鈕水平放置,用的是布局中的線性布局LinearLayout,用方法setOrientation(horizontal);將其設(shè)置為水平。LinearLayout中依次放置播放,暫停,停止,上、下一曲按鈕屬性。配置文件代碼結(jié)構(gòu)如下:<LinearLayout><ImageButton></ImageButton><ImageButton></ImageButton> <ImageButton></ImageButton><ImageButton></ImageButton><ImageButton></ImageButton></LinearLayout>android的媒體播放原理:android源程序已經(jīng)為我們封裝好了一個(gè)接口類,叫MediaPlayer。該接口在執(zhí)行行需要一個(gè)數(shù)據(jù)源,通過如下四個(gè)步驟:第一步:MediaPlayer.reset();復(fù)位操作,為以后的媒體準(zhǔn)備播放作準(zhǔn)備。 第二步:傳入歌曲數(shù)據(jù)源,這里也是一個(gè)數(shù)據(jù)流MediaPlayer.setDataSource(Stringpath);參數(shù)需要傳一個(gè)路徑,該接口類在收到路徑后將其轉(zhuǎn)化為數(shù)據(jù)源。第三步:準(zhǔn)備播放數(shù)據(jù)源,調(diào)用方法MediaPlayer.Prepare();第四步:MediaPlayer.Start();播放數(shù)據(jù)源,該數(shù)據(jù)源播放后,不再與程序有關(guān),需要用MediaPlayer.Stop()方法讓其停止或MediaPlayer.Start();讓其啟動(dòng);歌曲數(shù)據(jù)源的獲得:要獲得數(shù)據(jù)源,需要我們提供給接口類一個(gè)歌曲存放路徑,而這個(gè)路徑已經(jīng)被事先放到數(shù)據(jù)庫里了,我們只需要進(jìn)行數(shù)據(jù)庫進(jìn)行操作。將里面的路徑取出。這里將調(diào)用PlayRackActivity的一個(gè)方法query();代碼算法如下:publicStringquery(){ ContentResolvercr=getContentResolver(); Uriuri=DBProvider.CONTENT_URI; String[]projection={"path"}; Stringselection="fileName=?"; String[]selectionArgs={selectName}; Cursorc=cr.query(uri,projection,selection,selectionArgs,null); if(c.moveToFirst()){ Stringpath=c.getString(0); returnpath; }returnnull;}方法getContentResolver是包android.content.ContextWrapper里面的方法,它會(huì)自動(dòng)的調(diào)用ContentProvider中的關(guān)聯(lián)數(shù)據(jù)庫,我們需用這個(gè)方法就可以操作數(shù)據(jù)庫。數(shù)據(jù)庫操作需要一個(gè)Uri。Uri類似一個(gè)網(wǎng)絡(luò)連接的Url。Uri是數(shù)據(jù)庫唯一的標(biāo)識(shí),不同的Uri可以操作不同的數(shù)據(jù)庫表。在查詢數(shù)據(jù)庫時(shí)需要傳入一個(gè)當(dāng)前播放的歌曲名字,通過歌曲名字來查詢歌曲的路徑。本章小結(jié)借由合理的分析設(shè)計(jì)。簡(jiǎn)單的安卓音樂播放器可以實(shí)現(xiàn)很多實(shí)用的功能,基于設(shè)計(jì)一個(gè)符合基本要求的基于Android的音樂播放器系統(tǒng),要深入的了解Android的系統(tǒng)構(gòu)架以及Android應(yīng)用程序框架。Android的應(yīng)用程序框架:框架是應(yīng)用程序的核心,是所以參與開發(fā)的程序員共同所遵守的規(guī)則。以現(xiàn)階段Android技術(shù)發(fā)展水平,技術(shù)人員的技術(shù)配備,以及現(xiàn)有資源文檔的配備來說,實(shí)現(xiàn)本軟件是可能的。3G技術(shù)飛速發(fā)展,為滿足人們對(duì)音樂的追求,音樂播放器層出不從,然而市面上大多音樂播發(fā)器軟件都太難操作,或者音質(zhì)不好,不能給用戶以更好體驗(yàn)。結(jié)論通過對(duì)Android手機(jī)平臺(tái)的音樂播放器軟件的開發(fā),使我對(duì)Android音樂播放器系統(tǒng)的整體設(shè)計(jì)有一個(gè)深入的了解,對(duì)整個(gè)流程也會(huì)有一個(gè)清晰的認(rèn)識(shí)。開發(fā)Android音樂播放器,要抓住開發(fā)的核心部分,音樂播放器大體由播放主界面、播放列表、菜單、播放設(shè)置、文件瀏覽五大核心組成,只要掌握了這五部分的開發(fā),音樂播放器就能初具規(guī)模。而其它的功能都是在這五個(gè)功能的基礎(chǔ)上去補(bǔ)充添加的,但是這是功能的確是必不可少的功能,否則就不能算是音樂播放器了。音樂播放器系統(tǒng)實(shí)現(xiàn)了播放器的基本功能:播放,暫停、停止、上/下一首、音量調(diào)節(jié)、歌詞顯示、播放模式等功能。運(yùn)用的系統(tǒng)平臺(tái)是現(xiàn)今最熱門的Android系統(tǒng),是一個(gè)開源的基于Linux系統(tǒng)的手機(jī)平臺(tái)。是以Java語言編寫和SQLite數(shù)據(jù)庫支持+SharePreference配置文件的組合方式進(jìn)行數(shù)據(jù)管理。實(shí)現(xiàn)了音樂播放器的系統(tǒng)編程。本次程序設(shè)計(jì),對(duì)播放器的系統(tǒng)結(jié)構(gòu)框架做了精心的構(gòu)思與設(shè)計(jì),采用主要開發(fā)工具是Eclipse3.5.2和Java語言的支持,AndroidDevelopmentTool的插件,和AndroidSDK的全面結(jié)合,才使整個(gè)音樂播放器系統(tǒng)得以實(shí)現(xiàn)??傊?,經(jīng)過幾個(gè)月的Android系統(tǒng)技術(shù)知識(shí)的學(xué)習(xí)和對(duì)音樂播放器的構(gòu)思與設(shè)計(jì),使我對(duì)Android系統(tǒng)有了一定的了解,讓我對(duì)Android系統(tǒng)上的開發(fā)流程和開發(fā)模式有了深入的了解,這對(duì)我以后的Android項(xiàng)目開發(fā)有很大的幫助。參考文獻(xiàn)[1]王家林編著.大話企業(yè)級(jí)android應(yīng)用開發(fā)實(shí)戰(zhàn)[M].北京:電子工業(yè)出版社,2011-08-1[2]余志龍編著.GoogleAndroidSDK開發(fā)范例大全[M].北京:人民郵電出版社,2009-7-1.[3]E2ECloud工作室著.深入淺出GoogleAndroid[M].北京:人民郵電出版社,2009-08-1.[4]靳巖姚尚朗著.GoogleAndroid開發(fā)入門與實(shí)戰(zhàn)[M].北京:清華大學(xué)出版社,2009-07-01.[5]Iphone應(yīng)用開發(fā)權(quán)威指南胡幸征著;北京:電子工業(yè)出版社,2010.1[6]陳曉紅編著.信息系統(tǒng)教程[M].北京:清華大學(xué)出版社,2003.3[7]梅爾編著Android高級(jí)編程[M].北京:清華大學(xué)出版社,2010.6[8]郭宏志編著Android應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.6[9]張孝祥著 Java就業(yè)培訓(xùn)教程[M].北京:清華大學(xué)出版社,2007.[10]高昂著支持動(dòng)態(tài)語言的Android平臺(tái)[M].北京:人民郵電出版社,2009-05-07.[11]汪永松編著Android平臺(tái)開發(fā)之旅[M]北京:機(jī)械工業(yè)出版社2010.6[12]李寧編著Android應(yīng)用開發(fā)實(shí)戰(zhàn)[M]北京:機(jī)械工業(yè)出版社2012.1[13]楊文志編著GoogleAndroid程序設(shè)計(jì)指南[M]北京:電子工業(yè)出版社2009.10[14]康德爾編著Android移動(dòng)應(yīng)用開發(fā)從入門到精通[M]北京:人民郵電出版社2010.7[15]梁泉著Android系統(tǒng)級(jí)深入開發(fā)—移植與調(diào)試[M]北京:清華大學(xué)出版社2011.2附錄<?xmlversion="1.0"encoding="UTF-8"?><LinearLayoutandroid:layout_gravity="center"android:orientation="horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content"xmlns:android="/apk/res/android"><ProgressBarandroid:id="@android:id/progress"android:layout_width="wrap_content"android:layout_height="wrap_content"style="android:attr/progressBarStyleSmall"/><TextViewandroid:textStyle="bold"android:id="@+id/progress_info"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/loading"/></LinearLayout><?xmlversion="1.0"encoding="UTF-8"?><LinearLayoutandroid:layout_width="fill_parent"android:layout_height="fill_parent"xmlns:android="/apk/res/android"><includelayout="@layout/common_listview"/></LinearLayout><?xmlversion="1.0"encoding="UTF-8"?><RelativeLayoutandroid:background="@drawable/bg_player"android:layout_width="fill_parent"android:layout_height="fill_parent"xmlns:android="/apk/res/android"xmlns:kg="/apk/res/com.kugou.android"><RelativeLayoutandroid:id="@+id/top_bar"android:background="@drawable/bg_player_topbar"android:layout_width="fill_parent"android:layout_height="wrap_content"><ImageButtonandroid:id="@+id/playback_list"android:background="@drawable/playback_list_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"/><ImageButtonandroid:id="@+id/playback_mode"android:background="@drawable/playback_playmode_random_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_centerVertical="true"/><LinearLayoutandroid:orientation="vertical"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_toLeftOf="@+id/playback_mode"android:layout_toRightOf="@+id/playback_list"android:layout_centerHorizontal="true"><TextViewandroid:textAppearance="?android:textAppearanceMedium"android:textStyle="bold"android:textColor="#ffffffff"android:gravity="center_horizontal"android:id="@+id/playback_audio_name"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text=""android:singleLine="true"/><TextViewandroid:textStyle="bold"android:textColor="#ffbdbfe2"android:gravity="center_horizontal"android:id="@+id/playback_artist_name"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text=""android:singleLine="true"android:layout_below="@+id/playback_audio_name"/></LinearLayout></RelativeLayout><TextViewandroid:textAppearance="?android:textAppearanceMedium"android:id="@+id/playback_current_playlist_name"android:visibility="gone"android:layout_width="wrap_content"android:layout_height="wrap_content"android:singleLine="true"android:layout_below="@+id/top_bar"android:layout_centerHorizontal="true"/><ImageViewandroid:id="@+id/playback_album_art"android:background="@drawable/default_album"android:layout_width="fill_parent"android:layout_height="180.0px"android:layout_marginTop="5.0px"android:layout_below="@id/playback_current_playlist_name"/><SlidingDrawerandroid:orientation="vertical"android:id="@+id/playback_drawer"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_above="@+id/player_control_bar"android:layout_below="@+id/playback_current_playlist_name"android:bottomOffset="-80.0px"android:handle="@+id/drawer_handle"android:content="@+id/playback_lyrics"android:animateOnClick="true"><ImageViewandroid:id="@+id/drawer_handle"android:background="@drawable/lyr_handle_collapse"android:layout_width="fill_parent"android:layout_height="wrap_content"/><Viewandroid:id="@+id/playback_lyrics"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_above="@+id/playback_progress_bar"/></SlidingDrawer><LinearLayoutandroid:orientation="vertical"android:id="@+id/player_control_bar"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"><RelativeLayoutandroid:id="@+id/playback_progress_bar"android:layout_width="fill_parent"android:layout_height="wrap_content"><TextViewandroid:id="@+id/playback_current_time"android:paddingLeft="5.0dip"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="00:00"android:layout_alignParentLeft="true"android:layout_centerVertical="true"/><TextViewandroid:id="@+id/playback_total_time"android:paddingRight="5.0dip"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="00:00"android:layout_alignParentRight="true"android:layout_centerVertical="true"/><SeekBarandroid:id="@+id/playback_seeker"android:paddingLeft="9.0dip"android:paddingRight="9.0dip"android:focusable="false"android:clickable="true"android:layout_width="188.0dip"android:layout_height="wrap_content"android:maxHeight="30.0dip"android:max="100"android:progressDrawable="@drawable/playback_seekbar_style"android:minHeight="30.0dip"android:thumb="@drawable/playback_seekbar_thumb"android:thumbOffset="5.0dip"android:layout_toLeftOf="@+id/playback_total_time"android:layout_toRightOf="@+id/playback_current_time"android:layout_centerHorizontal="true"style="@android:attr/progressBarStyleHorizontal"/></RelativeLayout><RelativeLayoutandroid:id="@+id/play_bar"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_above="@id/playback_progress_bar"><ImageButtonandroid:id="@+id/playback_toggle"android:background="@drawable/playback_play_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"/><ImageButtonandroid:id="@+id/playback_pre"android:background="@drawable/playback_pre_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toLeftOf="@id/playback_toggle"/><ImageButtonandroid:id="@+id/playback_next"android:background="@drawable/playback_next_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_toRightOf="@id/playback_toggle"/></RelativeLayout></LinearLayout></RelativeLayout><?xmlversion="1.0"encoding="UTF-8"?><selectorxmlns:android="/apk/res/android"><itemandroid:state_focused="true"android:state_pressed="false"android:drawable="@drawable/playlist_button_focused"/><itemandroid:state_focused="false"android:state_pressed="true"android:drawable="@drawable/playlist_button_focused"/><itemandroid:state_focused="false"android:state_pressed="false"android:drawable="@drawable/playlist_button_default"/></selector><?xmlversion="1.0"encoding="UTF-8"?><RelativeLayoutandroid:gravity="center_vertical" android:layout_width="wrap_content"android:layout_height="wrap_content" android:minHeight="?android:listPreferredItemHeight" android:ignoreGravity="@id/icon"xmlns:android="/apk/res/android"> <includelayout="@layout/media_list_item_common"/></RelativeLayout><?xmlversion="1.0"encoding="UTF-8"?><RelativeLayoutandroid:background="@drawable/bg_player"android:layout_width="fill_parent"android:layout_height="fill_parent"xmlns:android="/apk/res/android"xmlns:kg="/apk/res/com.kugou.android"><RelativeLayoutandroid:id="@+id/top_bar"android:background="@drawable/bg_player_topbar"android:layout_width="fill_parent"android:layout_height="wrap_content"><ImageButtonandroid:id="@+id/playback_list"android:background="@drawable/playback_list_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerVertical="true"/><ImageButtonandroid:id="@+id/playback_mode"android:background="@drawable/playback_playmode_random_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_centerVertical="true"/><LinearLayoutandroid:orientation="vertical"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_toLeftOf="@+id/playback_mode"android:layout_toRightOf="@+id/playback_list"android:layout_centerHorizontal="true"><TextViewandroid:textAppearance="?android:textAppearanceMedium"android:textStyle="bold"android:textColor="#ffffffff"android:gravity="center_horizontal"android:id="@+id/playback_audio_name"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text=""android:singleLine="true"/><TextViewandroid:textStyle="bold"android:textColor="#ffbdbfe2"android:gravity="center_horizontal"android:id="@+id/playback_artist_name"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text=""android:singleLine="true"android:layout_below="@+id/playback_audio_name"/></LinearLayout></RelativeLayout><TextViewandroid:textAppearance="?android:textAppearanceMedium"android:id="@+id/playback_current_playlist_name"android:visibility="gone"android:layout_width="wrap_content"android:layout_height="wrap_content"android:singleLine="true"android:layout_below="@+id/top_bar"android:layout_centerHorizontal="true"/><ImageViewandroid:id="@+id/playback_album_art"android:background="@drawable/default_album"android:layout_width="fill_parent"android:layout_height="180.0px"android:layout_marginTop="5.0px"android:layout_below="@id/playback_current_playlist_name"/><SlidingDrawerandroid:orientation="vertical"android:id="@+id/playback_drawer"android:layout_width="fill_parent"android:layout_height="fill_parent"android:layout_above="@+id/player_control_bar"android:layout_below="@+id/playback_current_playlist_name"android:bottomOffset="-80.0px"android:handle="@+id/drawer_handle"android:content="@+id/playback_lyrics"android:animateOnClick="true"><ImageViewandroid:id="@+id/drawer_handle"android:background="@drawable/lyr_handle_collapse"android:layout_width="fill_parent"android:layout_height="wrap_content"/><Viewandroid:id="@+id/playback_lyrics"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_above="@+id/playback_progress_bar"/></SlidingDrawer><LinearLayoutandroid:orientation="vertical"android:id="@+id/player_control_bar"android:layout_width="fi
溫馨提示
- 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. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職第二學(xué)年(中醫(yī)美容技術(shù))拔罐美容階段測(cè)試題及答案
- 2025年中職護(hù)理(消毒滅菌技術(shù))試題及答案
- 2025年高職幼兒保育(幼兒安全教育)試題及答案
- 2025年高職語文(語文應(yīng)用能力)試題及答案
- 兒童安全寄語講解
- 國(guó)家級(jí)都市圈誰在領(lǐng)跑:2025華高萊斯產(chǎn)城瞭望報(bào)告第一期
- 2025河北省胸科醫(yī)院第二次招聘18人備考題庫附答案詳解
- 河南省新鄉(xiāng)市第十中學(xué)2025-2026學(xué)年九年級(jí)上學(xué)期1月期末歷史試卷(含答案)
- 2026國(guó)家知識(shí)產(chǎn)權(quán)局專利局專利審查協(xié)作北京中心福建分中心專利審查員招聘100人備考題庫及答案詳解一套
- 2025遼寧沈陽盛京軍勝農(nóng)業(yè)發(fā)展科技有限公司及所屬企業(yè)面向社會(huì)招聘7人備考題庫及參考答案詳解
- 2025年榆林神木市信息產(chǎn)業(yè)發(fā)展集團(tuán)招聘?jìng)淇碱}庫(35人)及完整答案詳解1套
- 2025新疆能源(集團(tuán))有限責(zé)任公司共享中心招聘?jìng)淇碱}庫(2人)帶答案詳解(完整版)
- 2026年中考作文備考之10篇高分考場(chǎng)范文
- 2025年自考專業(yè)(學(xué)前教育)真題附完整答案
- T∕CAMH 00002-2025 心理咨詢師職業(yè)能力水平評(píng)價(jià)標(biāo)準(zhǔn)
- 比亞迪維修試車協(xié)議書
- 急診科胸部創(chuàng)傷救治指南
- 安檢員值機(jī)識(shí)圖培訓(xùn)
- 電力市場(chǎng)基礎(chǔ)知識(shí)面試題及高頻考點(diǎn)
- 2026屆四川省成都市樹德實(shí)驗(yàn)中學(xué)物理九上期末調(diào)研試題含解析
- 精密制造公司年度總結(jié)
評(píng)論
0/150
提交評(píng)論