版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 畢 業(yè) 論 文(設(shè)計)</p><p><b> 摘 要</b></p><p> Android是一種以Linux為基礎(chǔ)的開放源碼操作系統(tǒng),它包括操作系統(tǒng)、用戶界面和應(yīng)用程序、移動電話所需的全部軟件,而且不存在任何以往阻礙移動產(chǎn)業(yè)的專有權(quán)障礙,Android主要使用于便攜設(shè)備,網(wǎng)絡(luò)中各種接口為廣大用戶、開發(fā)者提供了更優(yōu)的開發(fā)、使用環(huán)境
2、。</p><p> 本論文的音樂視頻播放器采用了Android開源系統(tǒng)技術(shù),利用Java語言和Eclipse編輯工具編寫。同時給出了詳細(xì)的系統(tǒng)設(shè)計過程、部分界面圖及主要功能運(yùn)行流程圖,該音樂播放器部分集播放、暫停、上一首、下一首、歌詞顯示、歌手照片等功能于一體,視頻播放器方面集播放、暫停、快進(jìn)、快退于一體,性能良好,在Android系統(tǒng)中能獨立運(yùn)行。該播放器還擁有對手機(jī)中多媒體文件的自動掃描功能、歌曲播放模式
3、設(shè)置。</p><p> 本播放器只限于應(yīng)用層程序的探討,主要考慮運(yùn)行效率及用戶體驗,不包含對底層多媒體文件解析的研究。</p><p> 關(guān)鍵詞:Android;開源系統(tǒng);linux;音樂播放;視頻播放</p><p><b> Abstract</b></p><p><b> 目 錄<
4、/b></p><p> AbstractIII</p><p><b> 第一章 緒論1</b></p><p> 1.1 課題的來源1</p><p> 1.2 課題的研究目的及意義1</p><p> 1.3 課題主要研究的問題2</p><p&
5、gt; 1.4 相關(guān)技術(shù)介紹與應(yīng)用2</p><p> 1.41 MVC設(shè)計思想運(yùn)用于Android開發(fā)2</p><p> 1.42 Android簡介2</p><p> 1.43 Android基本框架(Android Architecture)3</p><p> 1.44 Android四大組件5<
6、/p><p> 第二章 需求分析7</p><p> 2.1可行性分析7</p><p> 2.1.1 經(jīng)濟(jì)可行性7</p><p> 2.1.2 技術(shù)可行性7</p><p> 2.1.3 操作可行性7</p><p> 2.2 軟件功能分析7</p><
7、;p> 2.3 目標(biāo)系統(tǒng)邏輯模型8</p><p> 2.3.1 系統(tǒng)運(yùn)行環(huán)境8</p><p> 2.3.2 播放器的基本控制需求8</p><p> 2.3.3 播放清單列表管理需求10</p><p> 2.3.4 播放友好性需求12</p><p> 2.4 系統(tǒng)性能需求12<
8、;/p><p> 2.5 運(yùn)行環(huán)境需求13</p><p> 第三章 概要設(shè)計14</p><p> 3.1 設(shè)計策略14</p><p> 3.2 系統(tǒng)結(jié)構(gòu)設(shè)計14</p><p> 3.2.1 軟件總體結(jié)構(gòu)14</p><p> 3.2.2 系統(tǒng)模塊劃分15</p&
9、gt;<p> 3.2.3 程序流程圖15</p><p> 3.3 數(shù)據(jù)庫及字段屬性設(shè)計(以音樂播放器為例)16</p><p> 3.3.1 數(shù)據(jù)庫結(jié)構(gòu)16</p><p> 3.3.2數(shù)據(jù)庫連接18</p><p> 3.3.4數(shù)據(jù)庫更新18</p><p> 第四章 系統(tǒng)詳細(xì)
10、設(shè)計與實現(xiàn)19</p><p> 4.1 前臺功能模塊分析19</p><p> 4.1.1音樂相關(guān)界面設(shè)計19</p><p> 4.1.2視頻播放相關(guān)界面設(shè)計22</p><p> 4.2 后臺數(shù)據(jù)庫交互功能模塊分析24</p><p> 4.2.1數(shù)據(jù)庫連接24</p><
11、;p> 4.2.2數(shù)據(jù)庫操作24</p><p> 4.3 多媒體文件播放模塊分析25</p><p> 4.3.1音頻文件播放:25</p><p> 4.3.2視頻文件播放:27</p><p> 4.4系統(tǒng)時序圖28</p><p> 4.5系統(tǒng)特點29</p><
12、;p> 第五章 測試過程30</p><p> 5.1術(shù)語和縮寫詞30</p><p> 5.2測試環(huán)境30</p><p> 5.3測試結(jié)果31</p><p> 5.4播放器功能測試31</p><p><b> 結(jié) 論33</b></p>&
13、lt;p><b> 參考文獻(xiàn)34</b></p><p><b> 致 謝35</b></p><p><b> 附 錄36</b></p><p><b> 第一章 緒論</b></p><p><b> 1.1
14、 課題的來源</b></p><p> Android是一種以Linux為基礎(chǔ)的開放源碼操作系統(tǒng),它包括操作系統(tǒng)、用戶界面和應(yīng)用程序、移動電話所需的全部軟件,而且不存在任何以往阻礙移動產(chǎn)業(yè)的專有權(quán)障礙,Google通過和運(yùn)營商、設(shè)備制造商、開發(fā)商和其他有關(guān)各方組成申城次的合作伙伴關(guān)系,Google與手機(jī)聯(lián)盟一起開發(fā)了Android,其中包括中國移動、中國聯(lián)通、HTC,摩托羅拉、高通、T-Mobile
15、、索尼愛立信等三十多家企業(yè)。希望借助建立標(biāo)準(zhǔn)化、開放式的移動電話軟件平臺,在移動產(chǎn)業(yè)內(nèi)形成一個開放式的生態(tài)系統(tǒng)。</p><p> 作為谷歌企業(yè)戰(zhàn)略的重要組成部分,Android將進(jìn)一步推進(jìn)“隨時隨地為每個人提供信息”這一企業(yè)目標(biāo)的實現(xiàn)。全球為數(shù)眾多的移動電話用戶正使用基于Android的各種的移動設(shè)備,谷歌的目標(biāo)是讓移動通訊不依賴于設(shè)備甚至平臺。出于這個目的,Android將補(bǔ)充。</p>&l
16、t;p> 現(xiàn)今社會生活緊張,而聽音樂、看電影是其中最好的舒緩壓力的方式之一,本項目的目的是開發(fā)一個可以播放主流音樂文件格式、基本視頻格式的播放器,實現(xiàn)的主要功能是播放Mp3,Wav多種格式的音樂文件,并且能夠控制播放3gp格式電影,兩種播放模式分別實現(xiàn)暫停,停止,上一曲,下一曲,播放列表和歌曲循環(huán)模式,界面簡明,操作簡單。 </p><p> 1.2 課題的研究目的及意義</p><
17、p> 通過研究了各種市場上流行的手機(jī)播放器,了解它們各自的插件及編碼方式,還有各的播放特別格式文件,分析各種編碼的優(yōu)缺點以及各種播放器本身存在的缺陷和特點,編寫出功能實用,使用方便快捷的播放器。目前已經(jīng)實現(xiàn)的功能有能播放常見音頻文件的功能,如MP3、WAV、3GP等,擁有播放菜單,能選擇播放清單,具備一般播放器的功能,如快進(jìn),快退等。音樂播放模式也比較完善,有單曲,順序,循環(huán),隨機(jī)播放等模式。</p><p&
18、gt; 本項目是一款基于Android手機(jī)平臺的音樂視頻播放器,使Android手機(jī)擁有個性的多媒體播放器,使手機(jī)顯得更生動靈活化,與人們更為接近,讓手機(jī)主人隨時隨地處于音樂視頻的旋律之中。使人們的生活更加多樣化。也使設(shè)計者更加熟練Android的技術(shù)和其它在市場上的特點</p><p> 1.3 課題主要研究的問題</p><p> 目前在Android手機(jī)、平板電腦中,所使用的多
19、媒體播放工具大多是音樂視頻相分離,對于手機(jī)用戶來說不得不安裝兩種應(yīng)用程序,浪費手持設(shè)備的資源并影響。因此有必要開發(fā)為Android用戶提供支持多種格式并支持音頻視頻播放的軟件,因此有以下幾個方面需要深入研究:</p><p> 從理論的角度判斷開發(fā)基于Android平臺的音樂視頻播放器是否可行?</p><p> 從實踐上,如何提高界面操作的正確性和友好性,如何分析程序邏輯的正確性?&
20、lt;/p><p> 當(dāng)sd卡中包含大量視頻、音頻文件時,如何提高檢索效率?</p><p> 用戶數(shù)據(jù)與Android數(shù)據(jù)庫信息的交互如何解決?</p><p> 如何提高播放器在系統(tǒng)中的資源利用率?</p><p> 如何減少甚至刪除軟件自身數(shù)據(jù)庫而是用系統(tǒng)數(shù)據(jù)庫提高效率?</p><p> 1.4 相關(guān)技術(shù)
21、介紹與應(yīng)用</p><p> 本次畢業(yè)設(shè)計中運(yùn)用了目前主流的Android設(shè)計技術(shù),使用傳統(tǒng)MVC開發(fā)模式。</p><p> 1.41 MVC設(shè)計思想運(yùn)用于Android開發(fā)</p><p> 該設(shè)計模式是“Model-View-Controller”的縮寫,中文翻譯為“模型-視圖-控制器”。它由這三個部分組成Event、Controller、Model或
22、View。Event(事件)導(dǎo)致Controller改變Model或View,或者同時改變兩者。只要Controller改變了Models的數(shù)據(jù)或者屬性,所有依賴的View都會自動更新。類似的,只要Controller改變了View,View會從潛在的Model中獲取數(shù)據(jù)來刷新自己。</p><p> 而在Android軟件開發(fā)中,MVC設(shè)計思想依然可以使用并且在很大程度上提高代碼編寫效率以及執(zhí)行效率,Xml前
23、臺頁面以及資源文件即為View,Activity即為Controller,工具類即為Model。</p><p> 1.42 Android簡介</p><p> Android一詞的本義指“機(jī)器人”,同時也是Google于2007年11月5日宣布的基于Linux平臺的開源手機(jī)操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,號稱是首個為移動終端打造的真正開放和完整的
24、移動軟件。</p><p> Android是基于Linux內(nèi)核的軟件平臺和操作系統(tǒng),早期由Google開發(fā)(在華注冊商標(biāo)名為“安致”),后由開放手機(jī)聯(lián)盟(Open Handset Alliance)開發(fā)。它采用了軟件堆層(software stack,又名以軟件疊層)的架構(gòu),主要分為三部分。低層以Linux內(nèi)核工作為基礎(chǔ),只提供基本功能;其他的應(yīng)用軟件則由各公司自行開發(fā),以Java作為編寫程序的一部分。另外,
25、為了推廣此技術(shù),Google和其它幾十個手機(jī)公司建立了開放手機(jī)聯(lián)盟。Android在未公開之前常被傳聞為Google電話或gPhone。大多傳聞?wù)J為Google開發(fā)的是自己的手機(jī)電話產(chǎn)品,而不是一套軟件平臺。到了2010年1月,Google開始發(fā)表自家品牌手機(jī)電話的Nexus One。目前最新SDK版本為Android 4.0.3。</p><p> 1.43 Android基本框架(Android Arch
26、itecture)</p><p> 圖 2.1 Android Architecture</p><p> Applications</p><p> Application Android會同一個核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是用JAVA編寫的。</p
27、><p> Application FrameWork </p><p> 開發(fā)者完全可以訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序架構(gòu)用來簡化組件軟件的重用;任何一個應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性限制)。該應(yīng)用程序重用機(jī)制使得組建可以被用戶替換。</p><p> 所有的應(yīng)用程序都由一系列
28、的服務(wù)和系統(tǒng)組成,包括:</p><p> ? 可擴(kuò)展的視圖(Views )可以用來建應(yīng)用程序,包括列表(lists),網(wǎng)格(grids),文本框(text boxes),按鈕(buttons),甚至包括一個可嵌入的web瀏覽器</p><p> ?內(nèi)容管理器(Content Providers )使得應(yīng)用程序可以訪問另一個應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫),或者共享它們自己的數(shù)據(jù)。&l
29、t;/p><p> ?資源管理器(Resource Manager)提供非代碼資源的訪問,如本地字符串,圖形,和分層文件(layout files )。</p><p> ?通知管理器(Notification Manager)使得應(yīng)用程序可以在狀態(tài)欄中顯示客戶通知信息。</p><p> ?活動類管理器(Activity Manager)用來管理應(yīng)用程序生命周期
30、并提供常用的導(dǎo)航回退功能。</p><p> Libraries庫</p><p> Android 包括一個被 Android 系統(tǒng)中各種不同組件所使用的 C/C++ 庫集。該庫通過 Android 應(yīng)用程序框架為開發(fā)者提供服務(wù)。以下是一些主要的核心庫:</p><p> 系統(tǒng) C 庫- 一個從 BSD 繼承來的標(biāo)準(zhǔn) C 系統(tǒng)函數(shù)庫( libc ),專門為基
31、于 embedded linux 的設(shè)備定制。 媒體庫- 基于 PacketVideo OpenCORE;該庫支持錄放,并且可以錄制許多流行的音頻視頻格式,還有靜態(tài)印像文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。 Surface Manager - 對顯示子系統(tǒng)的管理,并且為多個應(yīng)用程序提供2D和3D圖層的無縫融合。 LibWebCore - 一個最新的web瀏覽器引擎用來支持Android瀏覽器
32、和一個可嵌入的web視圖。 SGL - 一個內(nèi)置的2D圖形引擎 3D libraries - 基于OpenGL ES 1.0 APIs實現(xiàn);該庫可以使用硬件3D加速(如果可用)或者使用高度優(yōu)化的3D軟加速。 FreeType - 位圖(bitmap)和向量(vector)字體顯示。 SQLite 一個對于所有應(yīng)用程序可用,功能強(qiáng)勁的輕型關(guān)系型數(shù)據(jù)庫引擎。</p><p> Android Runtime &l
33、t;/p><p> Android 包括了一個核心庫,該核心庫提供了JAVA編程語言核心庫的大多數(shù)功能。</p><p> 每一個Android應(yīng)用程序都在它自己的進(jìn)程中運(yùn)行,都擁有一個獨立的Dalvik虛擬機(jī)實例。Dalvik是針對于同時高效地運(yùn)行多個VMs來實現(xiàn)的。Dalvik虛擬機(jī)執(zhí)行.dex的Dalvik可執(zhí)行文件,該格式文件針對最小內(nèi)存使用做了優(yōu)化。該虛擬機(jī)是基于寄存器的,所有的
34、類都經(jīng)由JAVA匯編器編譯,然后通過SDK中的dx工具轉(zhuǎn)化成.dex格式由虛擬機(jī)執(zhí)行。</p><p> Dalvik虛擬機(jī)依賴于linux的一些功能,比如線程機(jī)制和底層內(nèi)存管理機(jī)制。</p><p><b> Linux內(nèi)核</b></p><p> Android 的核心系統(tǒng)服務(wù)依賴于 Linux 2.6 內(nèi)核,如安全性,內(nèi)存管理,進(jìn)
35、程管理,網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型。 Linux 內(nèi)核也同時作為硬件和軟件堆棧之間的硬件抽象層。未來發(fā)展 老牌智能手機(jī)軟件平臺制造商Symbian發(fā)言人則表示:Google的android只不過是另一個linux,symbian對其它軟件與其形成的競爭并不感到擔(dān)心。除了北美之外,Symbian在其它地區(qū)智能手機(jī)市場都占有大部分市場份額。 與iPhone相似,Android采用WebKit瀏覽器引擎,具備觸摸屏、高級圖形顯示和上網(wǎng)功能,用戶能夠
36、在手機(jī)上查看電子郵件、搜索網(wǎng)址和觀看視頻節(jié)目等,比iPhone等其他手機(jī)更強(qiáng)調(diào)搜索功能,界面更強(qiáng)大,可以說是一種融入全部Web應(yīng)用的單一平臺。 </p><p> 但其最震撼人心之處在于Android手機(jī)系統(tǒng)的開放性和服務(wù)免費。Android是一個對第三方軟件完全開放的平臺,開發(fā)者在為其開發(fā)程序時擁有更大的自由度,突破了iPhone等只能添加為數(shù)不多的固定軟件的枷鎖;同時與Windows Mobile、Symb
37、ian等廠商不同,Android操作系統(tǒng)免費向開發(fā)人員提供,這樣可節(jié)省近三成成本?!ndroid項目目前正在從手機(jī)運(yùn)營商、手機(jī)廠商、開發(fā)者和消費者那里獲得大力支持。谷歌移動平臺主管安迪?魯賓(Andy Rubin)表示,與軟件開發(fā)合作伙伴的密切接觸正在進(jìn)行中。從去年11月開始,谷歌開始向服務(wù)提供商、芯片廠商和手機(jī)銷售商提供Android平臺,并組建“開放手機(jī)聯(lián)盟”,其成員超過30家。市場前景 Google手機(jī)于08年10月22日正式上
38、市,與運(yùn)營商捆綁的合約價為179美元(約合人民幣1200元),現(xiàn)有的T-Mobile用戶可以通過網(wǎng)絡(luò)訂購。在10月22日發(fā)布當(dāng)天,將有22個國家和地區(qū)可以買到谷歌手機(jī)。在11月,將增至27個國家和地區(qū)?!?lt;/p><p> 1.44 Android四大組件</p><p> Android系統(tǒng)中,為我們提供了四大基本組件,每個組件是一個視圖,但是有些是可見的,有些是不可見的視圖,像A
39、ctivity,ContentProvider是可見的視圖,Service和BroadcastReceiver是不可見的,它們只在系統(tǒng)的后臺運(yùn)行。下面分別介紹四大組件:</p><p> Activity 簡介</p><p> 在Android系統(tǒng)中Activity提供可視化的用戶界面,一個Android應(yīng)用通常由多個Activity組成。多個Activity組成了Activity棧
40、(Stack),當(dāng)前活動的Activity處于棧頂。Activity有自己的生命周期,由Android系統(tǒng)來控制。</p><p> Service 簡介</p><p> 顧名思義Service就是運(yùn)行在后臺的一種服務(wù)程序,一般很少和用戶交互,因此沒有可視化界面定義一個Service類比較簡單,只要繼承Service類,實現(xiàn)其生命周期中的方法就可以了。一個定義好的Service必須在
41、AndroidManifest.xml配置文件注冊,通過<service>元素聲明才能使用.Service有自己的生命周期,我們可以調(diào)用startService()啟動一個Service或者bindService()方法來綁定一個存在的Service </p><p> Broadcast Receiver 簡介</p><p> Broadcast Receiver 顧名
42、思義廣播接收器,它和事件處理機(jī)制類似,只不過事件處理機(jī)制是程序組件級別的(例如,某個按鈕的單擊事件),而廣播事件處理機(jī)制是系統(tǒng)級別的。到目前為止我們可以使用Intent來啟動一個程序組件,我們還可以通過使用sendBroadcast()方法來發(fā)起一個系統(tǒng)級別的事件廣播來傳遞消息。我們可以在你的應(yīng)用程序中實現(xiàn)Broadcast Receiver來監(jiān)聽和響應(yīng)這些廣播的Intent </p><p> Content
43、Provider簡介</p><p> Content Provider 用來保存和檢索數(shù)據(jù),并且使應(yīng)用程序之間相互訪問數(shù)據(jù)成為可能。它是跨應(yīng)用程序共享數(shù)據(jù)的唯一方法。</p><p> Android 為常用的數(shù)據(jù)類型(如:音視頻、圖片和聯(lián)系方式等)提供了大量的Content Provider。它們被定義在android.provider包下面。通過這樣定義好的ContentProv
44、ider 我們可以方便的進(jìn)行數(shù)據(jù)操作。當(dāng)然我們必須擁有適當(dāng)?shù)臋?quán)限。我們也可以自己來定ContentProvider共享我們的數(shù)據(jù),方便用戶的訪問。</p><p><b> 第二章 需求分析</b></p><p> 在任何軟件的開發(fā)過程中,需求分析都是十分重要的環(huán)節(jié)。對于Android開發(fā)來說也是如此,實踐表明,需求分析工作所做的程度,在很大程度上決定了軟件的成
45、敗。系統(tǒng)分析的任務(wù)是:通過問題識別、可行性分析、詳細(xì)調(diào)查、系統(tǒng)化分析、最終完成新系統(tǒng)的邏輯方案設(shè)計,或稱邏輯模型設(shè)計。邏輯方案解決“做什么”問題,是需求分析的任務(wù)。下面將就音樂視頻播放器是否可行來進(jìn)行分析。</p><p><b> 2.1可行性分析</b></p><p> 可行性分析的任務(wù)是明確開發(fā)應(yīng)用項目的必要性和可行性。必要性來自實現(xiàn)開發(fā)任務(wù)的迫切性,而可
46、行性則取決于實現(xiàn)應(yīng)用系統(tǒng)的資源和條件。這項工作建立在前面初步調(diào)查的基礎(chǔ)上。</p><p> 2.1.1 經(jīng)濟(jì)可行性</p><p> 由于本次設(shè)計中所采用的開發(fā)工具均為開源產(chǎn)品,無費用需求;如軟件不發(fā)布則需要申請Android市場簽名權(quán)限20美金。所以本次開發(fā)不需要任何經(jīng)費支出。</p><p> 2.1.2 技術(shù)可行性</p><p&g
47、t; 對于Android操作系統(tǒng)來說,擁有自身完善的API,通過深入學(xué)習(xí)和研究,Android操作系統(tǒng)在多媒體文件播放方面有自身完善的數(shù)據(jù)庫,現(xiàn)行很多播放器采用自身去檢索SD卡的方式,而在本軟件的設(shè)想中,盡量減少軟件自身體積,調(diào)用系統(tǒng)數(shù)據(jù)庫,從Android API中可知是可行的,對于文件播放與多媒體文件支持方面,Android API也是可以做到的,所以從技術(shù)的角度分析,整合音樂、視頻播放于一身是可行的。</p>&l
48、t;p> 2.1.3 操作可行性</p><p> 本軟件的操作界面要做到簡潔、友好、功能全面,保證了用戶操作的人性化。對各類用戶的錯誤操作或異常情況應(yīng)有提示或自動消除能力。</p><p> 2.2 軟件功能分析</p><p> 通過研究了各種市場上流行的手機(jī)播放器,了解它們各自的插件及編碼方式,還有各的播放特別格式文件,分析各種編碼的優(yōu)缺點以及各
49、種播放器本身存在的缺陷和特點,編寫出功能實用,使用方便快捷的播放器。目前已經(jīng)需要的功能有能播放常見音頻文件的功能,如MP3、WAV、3GP等,擁有播放菜單,能選擇播放清單,具備一般播放器的功能,如快進(jìn),快退等。音樂播放模式也比較完善,有單曲,順序,循環(huán),隨機(jī)播放等模式。</p><p> 2.3 目標(biāo)系統(tǒng)邏輯模型</p><p> 邏輯模型是新系統(tǒng)開發(fā)中要采用的模型和信息處理方法。邏輯
50、方案是系統(tǒng)分析階段的最終成果,也是今后進(jìn)行系統(tǒng)設(shè)計和實施的依據(jù)。</p><p> 2.3.1 系統(tǒng)運(yùn)行環(huán)境</p><p> 開發(fā)環(huán)境:Eclipse 3.7+ADT 17.0.0</p><p> 運(yùn)行環(huán)境:Android1.6- Android 2.2</p><p> W2JJW-4KYDP-2YMKW-FX36H-QYVD8
51、 </p><p> 2.3.2 播放器的基本控制需求</p><p><b> cc</b></p><p> 圖2.1 播放器基本控制圖</p><p><b> 需求用例表:</b></p><p> 2.3.3 播放清單列表管理需求</p&
52、gt;<p> 當(dāng)用戶選中列表中某一項歌曲,就有的需求:</p><p> 圖2.2 播放器清單</p><p> 2.3.4 播放友好性需求</p><p> 圖2.3 播放器設(shè)定</p><p> 2.4 系統(tǒng)性能需求</p><p> 根據(jù)Android手機(jī)系統(tǒng)要求無響應(yīng)時間為5秒,
53、所以就有如下性能要求:</p><p> 當(dāng)要求歌曲播放時,程序響應(yīng)時間最長不能超過5秒</p><p> 當(dāng)要求歌曲暫停時,程序響應(yīng)時間最長不能超過5秒</p><p> 當(dāng)要求歌曲停止時,程序響應(yīng)時間最長不能超過5秒</p><p> 當(dāng)要求歌曲上/下一首時,程序響應(yīng)時間最長不能超過5秒</p><p>
54、 當(dāng)要求進(jìn)行清單列表時,程序響應(yīng)時間最長不能超過5秒</p><p> 2.5 運(yùn)行環(huán)境需求</p><p> 操作系統(tǒng):Android手機(jī)基于Linux操作系統(tǒng)</p><p> 支持環(huán)境:Android 1.5 – 2.2版本</p><p> 開發(fā)環(huán)境:Eclipse 3.7 ADT 17.0.0 </p><
55、;p><b> 第三章 概要設(shè)計</b></p><p><b> 3.1 設(shè)計策略 </b></p><p> 遵循軟件軟件工程原理及方法,采用如下設(shè)計策略。第一,模塊化策略。系統(tǒng)分兩大模塊:音樂播放模塊、視頻播放模塊和控制模塊。界面分為:列表頁面、播放頁面,因而為了保證系統(tǒng)整體結(jié)構(gòu)和數(shù)據(jù)安全,也提高了模塊間的獨立性,減少藕合程度,
56、必須進(jìn)行有效地系統(tǒng)分割。本系統(tǒng)將使用MVC思想編程,分離控制模塊。使制模塊得復(fù)用,數(shù)據(jù)庫方面使用系統(tǒng)Media數(shù)據(jù)庫中內(nèi)容,盡量減少自身數(shù)據(jù)量,減少軟件體積。</p><p> 3.2 系統(tǒng)結(jié)構(gòu)設(shè)計</p><p> 在完成對系統(tǒng)的需求分析后,就可以有針對性的進(jìn)行設(shè)計了。在本章中,主要針對該軟件的模塊劃分以及前、后臺功能模塊介紹,得出前、后臺功能結(jié)構(gòu)圖;由前、后臺功能結(jié)構(gòu)圖,得出本系統(tǒng)
57、的整體流程圖。在數(shù)據(jù)庫設(shè)計中,詳細(xì)介紹了如何調(diào)用并操作。</p><p> 3.2.1 軟件總體結(jié)構(gòu)</p><p> 軟件功能分為兩大功能:音樂播放功能、視頻播放功能,音樂播放功能。需要實現(xiàn)的功能有能播放常見音頻文件的功能,如MP3、WAV、3GP等,擁有播放菜單,能選擇播放清單,具備一般播放器的功能,如快進(jìn),快退等。音樂播放模式包括單曲循環(huán),順序播放,隨機(jī)播放等模式。</p&
58、gt;<p> 3.2.2 系統(tǒng)模塊劃分</p><p> 圖3.1軟件功能哥結(jié)構(gòu)圖</p><p><b> 功能描述如下:</b></p><p> 播放/暫停:通過播放按鍵實現(xiàn)暫?;虿シ鸥枨?。</p><p> 上一首/下一首:通過上一首、下一首按鍵實現(xiàn)歌曲切換。</p>&l
59、t;p> 歌詞:當(dāng)一首歌曲正在播放時,自動尋找該歌曲的歌詞文件并解析,實時更新于播放界面。</p><p> 歌手圖片:當(dāng)一首歌曲正在播放時,自動尋找該歌曲的歌手圖片,實時更新于播放界面。</p><p> 音樂列表:軟件開啟式第一個頁面。</p><p> 快進(jìn)/快退:播放視頻時快進(jìn)或快退15秒</p><p> 播放模式:
60、播放模式為一首歌曲播放結(jié)束后按照單曲循環(huán)或順序播放或隨機(jī)播放的方式播放西一首。</p><p> 更新列表:主動更新音樂或視頻列表</p><p><b> 列表管理:刪除歌曲</b></p><p> 3.2.3 程序流程圖</p><p> 綜合以上的模塊劃分以及各個模塊的功能分析,將本軟件的整體流程圖描述如
61、下:</p><p><b> 圖5-8系統(tǒng)流程圖</b></p><p> 由系統(tǒng)流程圖可以看出,本軟件一播放列表為主入口,在播放列表中可以對歌曲、視頻進(jìn)行刪、改,當(dāng)用戶點擊該頁的menu時可以選擇更新列表、跳至播放頁面的功能,當(dāng)用戶單擊列表中某一條目式,本軟件自動清空目前正在播放隊列里的歌曲并播放用戶當(dāng)前選中的歌曲或視頻,歌曲播放時同步更新歌詞,在歌曲播放頁面
62、可以選擇歌曲的播放模式。在試音、音樂的播放頁面中可以對當(dāng)前播放的多媒體文件進(jìn)行播放。再返回時,如果從視頻播放頁面返回播放列表頁面時停止視頻播放,如果從音樂播放頁面返回播放列表時歌曲轉(zhuǎn)為后臺播放。當(dāng)從播放列表頁返回時提示用戶是否退出,點擊確定則結(jié)束程序</p><p> 3.3 數(shù)據(jù)庫及字段屬性設(shè)計(以音樂播放器為例)</p><p> 3.3.1 數(shù)據(jù)庫結(jié)構(gòu)</p>&l
63、t;p> 數(shù)據(jù)結(jié)構(gòu)組織和數(shù)據(jù)庫文件設(shè)計要根據(jù)不同用途,使用要求等,來決定數(shù)據(jù)的整體組織形式等一系列問題。</p><p> 數(shù)據(jù)庫,顧名思義,是存放數(shù)據(jù)的倉庫。只不過這個倉庫是在計算機(jī)存儲設(shè)備上,而且數(shù)據(jù)是按一定的格式存放的。數(shù)據(jù)庫中的數(shù)據(jù)按一定數(shù)據(jù)模型組織、描述和存儲,具有較小的重復(fù)度、較高的數(shù)據(jù)獨立性和易擴(kuò)展性,并且可以被在一定范圍內(nèi)的各種用戶共享。在涉及數(shù)據(jù)庫的軟件開發(fā)中,需要根據(jù)有待解決的問題性
64、質(zhì)、規(guī)模,以及所采用的前端程序創(chuàng)建工具等,做出合適的數(shù)據(jù)庫類型選擇。</p><p> file_table 主要是保存歌曲名字、類型、路徑等,字段說明:Id 歌曲id號 fileName 歌曲名字 filePath 歌曲路徑 sort 歌曲類型(表3.1、圖3.1.1)</p><p> Android自帶一個MediaStore封閉類 專門來存儲媒體信息,通過Uri EXTERN
65、AL_CONTENT_URI 來訪問SDcard中的歌曲詳細(xì)信息。存放媒體信息如TITLE(標(biāo)題)、ARTIST(藝術(shù)家)、ALBUM(專輯)、SIZE(大小 )(表3.2、圖3.1.2)</p><p><b> 表3.1</b></p><p><b> 表3.2</b></p><p><b> 圖3
66、.1 歌曲列表</b></p><p><b> 圖3.2 歌曲詳細(xì)</b></p><p> 3.3.2數(shù)據(jù)庫連接</p><p> Android中自帶SQLite數(shù)據(jù)庫,這是一個十分小型的數(shù)據(jù)庫,這樣正適合Android這種移動平臺使用。</p><p> Android數(shù)據(jù)庫存儲的位置在dat
67、a/data/<項目文件夾>/databases/目錄下 Android是利用ContentProvider作為內(nèi)容提供商,SQLiteOpenHelper數(shù)據(jù)庫幫助類來進(jìn)行對數(shù)據(jù)庫的創(chuàng)建和操作。通過Context.getContentResolver()方法直接對數(shù)據(jù)庫進(jìn)行操作。程序中數(shù)據(jù)庫類為DBHelper extends SQLiteOpenHelper(繼承關(guān)系),內(nèi)容提供類DBProvider exten
68、ds ContentProvider(繼承關(guān)系)Android自帶一個MediaStore封閉類 專門來存儲媒體信息,通過Uri EXTERNAL_CONTENT_URI 來訪問,獲得SDcard中的歌曲詳細(xì)信息。</p><p> 3.3.4數(shù)據(jù)庫更新</p><p> 當(dāng)數(shù)據(jù)庫需更新時,比如添加歌曲或者刪除歌曲之后,Android系統(tǒng)并不會主動更新數(shù)據(jù)庫只有程序重啟或手機(jī)重啟時An
69、droid會更新Media數(shù)據(jù)庫,于是當(dāng)進(jìn)行了數(shù)據(jù)庫操作時就需要注冊廣播接收器通知系統(tǒng)更新數(shù)據(jù)庫這樣既可在進(jìn)行相關(guān)文件增刪改查時同步更新數(shù)據(jù)庫。</p><p> 第四章 系統(tǒng)詳細(xì)設(shè)計與實現(xiàn)</p><p> 本軟件的設(shè)計時,已將劃分為多個模塊,并將它們按照一定的原則組裝起來,每個模塊完成一定的功能。詳細(xì)設(shè)計是軟件設(shè)計的第二階段,主要是實現(xiàn)每個模塊具體執(zhí)行的功能、詳細(xì)算法。詳細(xì)設(shè)計的完
70、成為編碼奠定了基礎(chǔ),編碼是在詳細(xì)設(shè)計的基礎(chǔ)上進(jìn)行的,它是將詳細(xì)設(shè)計得到的處理過程的描述轉(zhuǎn)換為基于某種計算機(jī)語言的程序。</p><p> 本章我們將對軟件的總體規(guī)劃和設(shè)計進(jìn)行介紹,同時對難點穿插一些代碼。另外,對于本章我們將以模塊為單位來展開</p><p> 4.1 前臺功能模塊分析</p><p> 4.1.1音樂相關(guān)界面設(shè)計</p><
71、;p> 音樂視頻播放器的界面要給用戶第一體驗印象的界面,需要使用戶有興趣使用,在參考Android市場上多款播放器后設(shè)計為TabHost作為音樂和視頻的切換入口,使用略帶夢幻和漸變的背景圖片給用戶傳達(dá)放松、呼吸的感覺。TabHost轉(zhuǎn)載兩個Activity分別為音樂和視頻播放列表。列表均采用自定義的列表布局。</p><p> 綜合考慮,本系統(tǒng)登錄首頁采用上述設(shè)計模式進(jìn)行設(shè)計和實現(xiàn)。如下圖:</p
72、><p> 圖4-1播放器主界面</p><p> 音樂播放列表的自定義樣式代碼如下:</p><p> <style name="CustomListViewStyle"></p><p> <!-- 設(shè)置透明背景色 --></p><p> <item nam
73、e="android:cacheColorHint">@color/background_color</item></p><p> <!-- 指定分割線顏色 --></p><p> <item name="android:divider">@color/defaults</item><
74、;/p><p> <!-- 指定分割線高度 --></p><p> <item name="android:dividerHeight">1px</item></p><p> <!-- 設(shè)置listSelector的顏色在數(shù)據(jù)的下面 --></p><p> <
75、item name="android:drawSelectorOnTop">false</item></p><p> <!-- 設(shè)置點擊選中顏色 --></p><p> <item name="android:listSelector">@drawable/listview_background<
76、;/item></p><p> <!-- 設(shè)置ListView默認(rèn)背景色 --></p><p> <item name="android:background">@android:color/transparent</item></p><p> <!-- 設(shè)置ListView距左邊距距離
77、 --></p><p> <item name="android:paddingLeft">0dip</item></p><p> <!-- 設(shè)置ListView距右邊距距離 --></p><p> <item name="android:paddingRight"&
78、gt;0dip</item></p><p> <item name="android:paddingTop">3dip</item></p><p><b> </style></b></p><p> 音樂播放界面的實現(xiàn)考慮的問題就比較多了,諸如:布局方式、按鍵觸發(fā)動
79、畫效果、透明效果、歌詞顯示變換方式等,最終由Android開發(fā)已不推薦使用的絕對布局轉(zhuǎn)為LinearLayout嵌套而成,各種按鍵素材均為反解市場上多款成熟播放器的.apk文件反解得到,并自定義seekbar樣式,Android自帶seekbar樣式為:</p><p> 圖4-2 原始seek樣式</p><p> 自定義樣式后seek變?yōu)椋?lt;/p><p>
80、 圖4-3 自定義seek樣式</p><p> SeekBar樣式代碼如下:</p><p> <?xml version="1.0" encoding="UTF-8"?></p><p> <layer-list xmlns:android="http://schemas.android
81、.com/apk/res/android" ></p><p><b> <item</b></p><p> android:id="@android:id/background"</p><p> android:drawable="@drawable/seek_bkg"/
82、></p><p> <item android:id="@android:id/secondaryProgress"></p><p><b> <clip></b></p><p><b> <shape></b></p><p&g
83、t; <corners android:radius="2.0dip" /></p><p><b> <gradient</b></p><p> android:angle="270.0"</p><p> android:centerColor="#80ffb60
84、0"</p><p> android:centerY="0.75"</p><p> android:endColor="#a0ffcb00"</p><p> android:startColor="#80ffd300" /></p><p><b&g
85、t; </shape></b></p><p><b> </clip></b></p><p><b> </item></b></p><p> <item android:id="@android:id/progress"><
86、;/p><p> <clip android:drawable="@drawable/seek" /></p><p><b> </item></b></p><p> </layer-list></p><p> Android的每一個可視化界面,都有其的唯
87、一的布局配置文件,該文件里面有各種布局方式,和各種資源文件如圖像,文字,顏色的引用,程序在運(yùn)行時,可以通過代碼對各配置文件進(jìn)行讀取。這樣就可以形成不同的可視化界面和炫麗的效果。播放器主界面是一個Activity,Android工程在每個activity啟動的時候會首先執(zhí)行Oncreate()方法,如下代碼:</p><p> public void onCreate(Bundle savedInstanceSt
88、ate) {</p><p> super.onCreate(savedInstanceState);</p><p> this.requestWindowFeature(Window.FEATURE_NO_TITLE);</p><p> setContentView(R.layout.musicplayer);</p><p>&
89、lt;b> }</b></p><p> 最終,音樂正在播放頁面設(shè)計如圖:</p><p> 圖4-4音樂播放頁面首頁</p><p> 4.1.2視頻播放相關(guān)界面設(shè)計</p><p> 上述播放器主界面TabHost裝載兩個Activity分別為音樂和視頻播放列表。列表均采用自定義的列表布局。其中視頻播放列表如下
90、圖:</p><p> 圖4-5視頻播放列表頁</p><p> 因為在音樂播放頁面的介紹時介紹了樣式代碼,這里介紹實現(xiàn)列表的前臺xml文件內(nèi)容:</p><p> <?xml version="1.0" encoding="utf-8"?></p><p> <LinearL
91、ayout </p><p> xmlns:android="http://schemas.android.com/apk/res/android"</p><p> android:layout_height="fill_parent"</p><p> android:layout_width="fill_
92、parent" </p><p> android:orientation="vertical"</p><p> android:background="@android:color/transparent" ></p><p> <TextView </p><p>
93、android:text="播放列表" </p><p> android:layout_width="match_parent"</p><p> android:layout_height="40dp"</p><p> android:background="@drawable/tur
94、n_title_background"</p><p> android:textSize="22dp"</p><p> android:textColor="@color/text_shadow_color"</p><p> android:gravity="bottom"</p
95、><p> ></TextView></p><p> <ListView </p><p> android:id="@+id/movie_listview"</p><p> android:layout_height="fill_parent" </p>
96、<p> android:layout_width="fill_parent"</p><p> android:cacheColorHint="#00000000" </p><p> style="@style/CustomListViewStyle"</p><p> ><
97、;/ListView></p><p> </LinearLayout></p><p> 圖4-6視頻正在播放操作界面</p><p> 電影播放頁面的實現(xiàn)列表的前臺xml文件內(nèi)容:</p><p> <?xml version="1.0" encoding="utf-8&quo
98、t;?></p><p> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"</p><p> android:layout_width="fill_parent"</p><p> android:layout_
99、height="fill_parent"</p><p> android:background="@android:color/transparent"</p><p> android:orientation="vertical" ></p><p> <VideoView</p
100、><p> android:id="@+id/videoView"</p><p> android:layout_width="match_parent"</p><p> android:layout_height="wrap_content" </p><p> andro
101、id:layout_gravity="center"/></p><p> </LinearLayout></p><p> 4.2 后臺數(shù)據(jù)庫交互功能模塊分析</p><p> 4.2.1數(shù)據(jù)庫連接</p><p> Android中自帶SQLite數(shù)據(jù)庫,這是一個十分小型的數(shù)據(jù)庫,這樣正適合A
102、ndroid這種移動平臺使用。</p><p> Android數(shù)據(jù)庫存儲的位置在data/data/<項目文件夾>/databases/目錄下 Android是利用ContentProvider作為內(nèi)容提供商,SQLiteOpenHelper數(shù)據(jù)庫幫助類來進(jìn)行對數(shù)據(jù)庫的創(chuàng)建和操作。通過Context.getContentResolver()方法直接對數(shù)據(jù)庫進(jìn)行操作。程序中數(shù)據(jù)庫類為DBHe
103、lper extends SQLiteOpenHelper(繼承關(guān)系),內(nèi)容提供類DBProvider extends ContentProvider(繼承關(guān)系)</p><p> Android自帶一個MediaStore封閉類 專門來存儲媒體信息,通過Uri EXTERNAL_CONTENT_URI 來訪問,獲得SDcard中的歌曲詳細(xì)信息。</p><p> Cursor mAu
104、dioCursor = getContentResolver().query(</p><p> MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, // 查詢條件</p><p> null, // 條件的對應(yīng)?的參數(shù)</p><p> MediaStore.Audio.AudioColumns.
105、TITLE// 排序方式</p><p><b> );</b></p><p> Cursor VudioCursor = getContentResolver().query(</p><p> MediaStore.Video.Media.EXTERNAL_CONTENT_URI, null, null, // 查詢條件</p
106、><p> null, // 條件的對應(yīng)?的參數(shù)</p><p> MediaStore.Video.VideoColumns.TITLE// 排序方式</p><p><b> );</b></p><p> 4.2.2數(shù)據(jù)庫操作</p><p> 當(dāng)數(shù)據(jù)庫需更新時,比如添加歌曲或者刪除歌
107、曲之后,Android系統(tǒng)并不會主動更新數(shù)據(jù)庫只有程序重啟或手機(jī)重啟時Android會更新Media數(shù)據(jù)庫,于是當(dāng)進(jìn)行了數(shù)據(jù)庫操作時就需要通知系統(tǒng)更新數(shù)據(jù)庫方法如下:</p><p> private void scanSdCard() {</p><p> IntentFilter intentFilter = new IntentFilter(</p><p&g
108、t; Intent.ACTION_MEDIA_SCANNER_STARTED);</p><p> intentFilter.addAction(Intent.ACTION_MEDIA_SCANNER_FINISHED);</p><p> intentFilter.addDataScheme("file");</p><p> scan
109、Receiver = new ScanSdFilesReceiver();</p><p> registerReceiver(scanReceiver, intentFilter);</p><p> sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED,</p><p> Uri.parse("
110、file://"</p><p> + Environment.getExternalStorageDirectory()</p><p> .getAbsolutePath())));</p><p><b> }</b></p><p><b> 并注冊廣播接收器:</b>&l
111、t;/p><p> private class ScanSdFilesReceiver extends BroadcastReceiver {</p><p> public void onReceive(Context context, Intent intent) {</p><p> String action = intent.getAction();&l
112、t;/p><p> if (Intent.ACTION_MEDIA_SCANNER_STARTED.equals(action)) {</p><p> // 當(dāng)系統(tǒng)開始掃描sd卡時,為了用戶體驗,可以加上一個等待框</p><p> System.out.println("++---++---++---++");</p><
113、;p><b> }</b></p><p> if (Intent.ACTION_MEDIA_SCANNER_FINISHED.equals(action)) {</p><p> // 當(dāng)系統(tǒng)掃描完畢時,停止顯示等待框,并重新查詢ContentProvider</p><p> movieListData.clear();<
114、;/p><p><b> // 獲取歌曲</b></p><p> getVideoSD();</p><p><b> // 刷新列表</b></p><p> refreashmovielist();</p><p> myDialog.dismiss();<
115、/p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 這樣既可在進(jìn)行相關(guān)文件增刪改查時同步更新數(shù)據(jù)庫。</p><p> 4.3 多媒體文件播放模塊分析</p>
116、<p> 4.3.1音頻文件播放:</p><p> MediaPlayer是Android封裝好的可以直接用來管理多媒體文件的工具類,可以使用直接new的方式:MediaPlayer mp = new MediaPlayer(); MediaPlayer要播放的文件主要包括3個來源:</p><p> a. 用戶在應(yīng)用中事先自帶的resource資源例如:MediaP
117、layer.create(this, R.raw.test);</p><p> b. 存SD卡或其他文件路徑下的媒體文件例如:mp.setDataSource("/sdcard/test.mp3");</p><p> c. 網(wǎng)絡(luò)上的媒體文件例如:mp.setDataSource("http://www.citynorth.cn/music/confuc
118、ius.mp3");</p><p> 對播放器的主要控制方法:</p><p> Android通過控制播放器的狀態(tài)的方式來控制媒體文件的播放,其中:prepare()和prepareAsync() 提供了同步和異步兩種方式設(shè)置播放器進(jìn)入prepare狀態(tài),需要注意的是start()是真正啟動文件播放的方法,pause()和stop()比較簡單,起到暫停和停止播放的作用,
119、seekTo()是定位方法,可以讓播放器從指定的位置開始播放,需要注意的是該方法是個異步方法,也就是說該方法返回時并不意味著定位完成,尤其是播放的網(wǎng)絡(luò)文件,真正定位完成時會觸發(fā)OnSeekComplete.onSeekComplete(),如果需要是可以調(diào)用setOnSeekCompleteListener(OnSeekCompleteListener)設(shè)置監(jiān)聽器來處理的。release()可以釋放播放器占用的資源,一旦確定不再使用播放
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于android平臺的視頻播放器設(shè)計論文
- JAVA基于ANDROID平臺的視頻播放器論文.doc
- 【畢業(yè)課題論文】android手機(jī)平臺音樂播放器
- 基于android平臺的音樂播放器-畢業(yè)論文
- 畢業(yè)論文——基于android平臺的音樂播放器
- 基于android手機(jī)平臺的音樂播放器-畢業(yè)論文
- 基于android手機(jī)平臺的音樂播放器【畢業(yè)論文】
- 畢業(yè)論文基于android手機(jī)平臺的音樂播放器
- 基于android手機(jī)平臺的音樂播放器 (2)
- 畢業(yè)設(shè)計(論文)基于android手機(jī)平臺的音樂播放器
- 畢業(yè)論文設(shè)計 基于android手機(jī)平臺的音樂播放器
- 基于android平臺的視頻播放器設(shè)計文獻(xiàn)綜述
- 基于android的音樂播放器畢業(yè)論文
- 389.基于android手機(jī)平臺的音樂播放器
- 基于android平臺的音樂播放器設(shè)計與實現(xiàn)畢業(yè)論文
- 基于android平臺的音樂播放器開發(fā)與設(shè)計
- 基于android平臺的音樂播放器設(shè)計與實現(xiàn)畢業(yè)論文
- 彭衛(wèi)衛(wèi)+android手機(jī)平臺音樂播放器大學(xué)課題論文
- 畢業(yè)論文范文——android音樂播放器
- android視頻播放器課程設(shè)計
評論
0/150
提交評論