




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
摘要在這個(gè)信息資訊爆炸的時(shí)代,人們手機(jī)中視頻和音頻文件數(shù)量龐大,手機(jī)自帶的音樂(lè)播放器只能對(duì)音頻文件進(jìn)行播放,不能對(duì)視頻文件進(jìn)行播放、手機(jī)自帶的相冊(cè)只能對(duì)相片和視頻文件進(jìn)行播放查看,且播放的視頻只能播放手機(jī)拍攝的視頻文件,不能對(duì)某些網(wǎng)絡(luò)下載的視頻、音頻文件進(jìn)行播放,本文所設(shè)計(jì)的多媒體播放系統(tǒng)搭建基于Android技術(shù),利用Java語(yǔ)言進(jìn)行代碼編寫(xiě),數(shù)據(jù)庫(kù)采用SQLite。在開(kāi)發(fā)過(guò)程中本著解決用戶(hù)需求的標(biāo)準(zhǔn)進(jìn)行整個(gè)系統(tǒng)開(kāi)發(fā),搭建后的安卓多媒體播放器APP能夠?yàn)槭褂糜脩?hù)提供播放音頻、視頻的功能,能夠控制播放進(jìn)度條,且軟件可以自動(dòng)掃描手機(jī)本地的音頻及視頻文件,幫助用戶(hù)整合手機(jī)內(nèi)多媒體文件,對(duì)喜歡的音頻視頻文件進(jìn)行收藏、查看歷史播放過(guò)得文件,切實(shí)實(shí)現(xiàn)使用用戶(hù)各方面的播放需求。關(guān)鍵詞:Android技術(shù);多媒體播放;Java;SQLite
緒論研究意義基于安卓的多媒體播放器APP在實(shí)現(xiàn)后,主要能夠幫助使用用戶(hù)提供在線播放音頻、視頻,查看手機(jī)本地視頻音頻文件的功能。在這個(gè)信息資訊爆炸的時(shí)代,人們手機(jī)中視頻和音頻文件數(shù)量龐大,手機(jī)自帶的音樂(lè)播放器只能對(duì)音頻文件進(jìn)行播放,不能對(duì)視頻文件進(jìn)行播放、手機(jī)自帶的相冊(cè)只能對(duì)相片和視頻文件進(jìn)行播放查看,且播放的視頻只能播放手機(jī)拍攝的視頻文件,不能對(duì)某些網(wǎng)絡(luò)下載的視頻、音頻文件進(jìn)行播放,而此款多媒體APP既可以播放手機(jī)內(nèi)的音頻文件又可以播放手機(jī)內(nèi)的視頻文件,對(duì)多種規(guī)格文件兼容。無(wú)論是手機(jī)拍攝的視頻、錄音的音頻還是在網(wǎng)絡(luò)中下載的音頻視頻,都可以進(jìn)行播放。在用戶(hù)安裝此款多媒體播放器APP后,無(wú)論手機(jī)是否有網(wǎng)絡(luò),無(wú)論用戶(hù)在何地,何時(shí),都可以進(jìn)行手機(jī)內(nèi)音頻視頻文件的播放,幫助用戶(hù)在瑣碎時(shí)間解悶,排解心情,提高用戶(hù)幸福感。通過(guò)播放軟件對(duì)本地音頻視頻的自動(dòng)導(dǎo)入,還可以幫助用戶(hù)了解自己手機(jī)中隱藏的一些音頻視頻文件。開(kāi)發(fā)環(huán)境介紹基于安卓的播放器APP雖然是安卓軟件,但是確實(shí)在計(jì)算機(jī)中進(jìn)行開(kāi)發(fā)的,開(kāi)發(fā)資源為開(kāi)發(fā)者手中的筆記本一臺(tái),整個(gè)系統(tǒng)的開(kāi)發(fā)過(guò)程中使用到的開(kāi)發(fā)工具有AndroidStudio、mysql等。播放器app系統(tǒng)開(kāi)發(fā)環(huán)境詳細(xì)介紹如下所示:(1)開(kāi)發(fā)設(shè)備筆記本一臺(tái);處理器:Intel(R)Core(TM)i5-4210MCPU@2.6GHz2.6GHz;運(yùn)行內(nèi)存:4.00GB;系統(tǒng)類(lèi)型:64位操作系統(tǒng);硬盤(pán)內(nèi)存:600GB;操作系統(tǒng):Windows7。(2)開(kāi)發(fā)平臺(tái)開(kāi)發(fā)工具:AndroidStudio;數(shù)據(jù)庫(kù):MySql數(shù)據(jù)庫(kù)。可行性分析(1)經(jīng)濟(jì)可行性基于安卓的多媒體播放器APP在系統(tǒng)建設(shè)前期的分析階段主要通過(guò)網(wǎng)絡(luò)進(jìn)行資料查詢(xún),并沒(méi)有資金上的花費(fèi)。系統(tǒng)設(shè)計(jì)則是基于收集到的各種資料進(jìn)行的,也沒(méi)有資金上的花費(fèi)。系統(tǒng)在實(shí)現(xiàn)過(guò)程中,主要用的各種技術(shù)也是免費(fèi)開(kāi)源的,可以在網(wǎng)絡(luò)上進(jìn)行查詢(xún)技術(shù)和免費(fèi)開(kāi)源包,因此經(jīng)濟(jì)上是可行的。(2)技術(shù)可行性整個(gè)安卓多媒體播放器APP通過(guò)搭建android環(huán)境,在筆記本上進(jìn)行搭建,安裝安卓模擬器,搭建時(shí)直接在計(jì)算機(jī)的安卓模擬器上就可以查看效果,且安卓系統(tǒng)主要開(kāi)發(fā)語(yǔ)言java語(yǔ)言,免費(fèi)開(kāi)源且很穩(wěn)定,易于系統(tǒng)開(kāi)發(fā)。所有開(kāi)發(fā)相關(guān)技術(shù)都是開(kāi)源的,在網(wǎng)絡(luò)上可以輕松找到開(kāi)源技術(shù)信息協(xié)助系統(tǒng)的構(gòu)建,因此技術(shù)是可行的。(3)法律可行性安卓多媒體播放器APP的開(kāi)發(fā)技術(shù)都是目前火爆開(kāi)源的技術(shù),這些技術(shù)都是合法的,因此開(kāi)發(fā)技術(shù)方面是合法的;系統(tǒng)建設(shè)的初衷是用于畢業(yè)設(shè)計(jì),后期投入使用的話也只是協(xié)助用戶(hù)進(jìn)行音頻視頻多媒體播放,不存在違法等暴力牟利的建設(shè)目的,投入運(yùn)營(yíng)后亦不存在違法行為。綜合而述,整個(gè)系統(tǒng)在搭建目的、搭建過(guò)程和搭建成功投入使用等各個(gè)階段都是合法的,因此法律上是可行的。(4)操作可行性安卓多媒體播放器APP搭建在eclipse中安裝Android開(kāi)發(fā)插件,使用Android模擬器開(kāi)發(fā),在操作上是可行的。需求分析軟件目標(biāo)基于安卓的多媒體播放器APP的用戶(hù)就是使用該APP的手機(jī)用戶(hù),對(duì)于軟件來(lái)說(shuō),它需要滿足用戶(hù)對(duì)APP的需求,對(duì)于用戶(hù)來(lái)說(shuō),他們需要使用多媒體播放器APP進(jìn)行音頻、視頻的播放。整個(gè)系統(tǒng)APP應(yīng)該達(dá)到以下目標(biāo):(1)系統(tǒng)應(yīng)該具有多媒體音頻視頻文件播放這一基本功能,幫助用戶(hù)對(duì)視頻音頻文件進(jìn)行信息查看和播放,系統(tǒng)應(yīng)該具有播放列表,存放待播放音視頻文件,用戶(hù)只需點(diǎn)擊列表中文件就能進(jìn)行播放。(2)系統(tǒng)應(yīng)該界面簡(jiǎn)約,便于操作,使得用戶(hù)不需要學(xué)會(huì)計(jì)算機(jī)技術(shù),只要識(shí)文辨字就能使用系統(tǒng)。(3)系統(tǒng)應(yīng)該具有可維護(hù)性、可擴(kuò)展性,隨著時(shí)間的變化,APP會(huì)在后期加入其他功能模塊來(lái)滿足用戶(hù)需求,因此整個(gè)播放器APP在建設(shè)時(shí)應(yīng)該確保系統(tǒng)具有后期可拓展性。功能需求系統(tǒng)功能需求是根據(jù)用戶(hù)需求來(lái)進(jìn)一步分析的,系統(tǒng)用戶(hù)對(duì)系統(tǒng)基本的需求訴訟就是能夠在手機(jī)APP端,查看播放列表,在播放列表里播放選中的文件,整理手機(jī)中的音頻視頻文件,對(duì)自己喜歡的音頻視頻文件進(jìn)行收藏,查看自己播放過(guò)得音頻視頻文件,根據(jù)以上用戶(hù)需求,將系統(tǒng)功能需求大致規(guī)劃為:收藏列表需求、推薦列表需求、本地列表需求、歷史記錄需求。(1)收藏模塊需求收藏模塊是滿足用戶(hù)對(duì)喜歡的多媒體文件進(jìn)行收藏的需求,需要能夠選中音視頻文件,并對(duì)文件進(jìn)行收藏操作,被收藏的多媒體文件以列表形式展示在收藏模塊中,用戶(hù)需要可以在此模塊查看音視頻文件的基本信息,需要可以直接選擇喜歡的多媒體文件,進(jìn)入該音視頻播放界面。(2)網(wǎng)絡(luò)在線文件模塊需求推薦模塊是在手機(jī)有網(wǎng)絡(luò)的前提下,給用戶(hù)推送的網(wǎng)絡(luò)在線觀看音視頻,需要能夠給用戶(hù)提供查看音視頻列表,查看音視頻簡(jiǎn)介信息,查詢(xún)視頻,需要滿足用戶(hù)點(diǎn)擊網(wǎng)絡(luò)音視頻文件列表中的文件后,進(jìn)入該音視頻文件的播放界面需求。(3)本地音視頻文件模塊需求本地模塊就是需要給用戶(hù)提供本地視頻列表,需要能夠?qū)⒂脩?hù)手機(jī)本地的音視頻文件進(jìn)行掃描,并將音視頻文件以列表的形式展示給用戶(hù),滿足用戶(hù)查看本地音視頻文件的需求。(4)歷史記錄模塊需求歷史模塊就是將用戶(hù)瀏覽過(guò)的音視頻信息展示給用戶(hù),用戶(hù)可以通過(guò)點(diǎn)擊音頻視頻文件進(jìn)行播放。(5)播放音視頻文件需求播放音視頻文件需要能夠?yàn)橛脩?hù)流暢清晰地播放用戶(hù)選中的音視頻文件,用戶(hù)點(diǎn)擊播放列表的文件詞條后會(huì)進(jìn)入該音視頻播放界面,播放界面需要擁有必要的暫停鍵、播放鍵,滿足用戶(hù)暫停播放或繼續(xù)播放的需求,還需要有切換播放的按鍵,例如播放上一首、播放下一首,來(lái)滿足用戶(hù)切換播放文件的需求,無(wú)需返回播放列表界面就可以進(jìn)行切換播放。性能需求一個(gè)好的系統(tǒng)軟件,不能只考慮系統(tǒng)的功能需求,系統(tǒng)的其他需求也需要考慮好,比如系統(tǒng)的性能需求,系統(tǒng)是否具有良好的兼容性、系統(tǒng)對(duì)于用戶(hù)來(lái)說(shuō)是否是易于操作的,系統(tǒng)后期能否可以擴(kuò)展,系統(tǒng)是否可靠等等。對(duì)于手機(jī)軟件來(lái)說(shuō),判斷它性能最直觀的辦法之一是及時(shí)觀察系統(tǒng)的響應(yīng)時(shí)間,一般各種響應(yīng)時(shí)間應(yīng)該不超過(guò)3秒,要求視頻播放時(shí)的響應(yīng)時(shí)間、要求視頻暫停時(shí)的響應(yīng)時(shí)間、要求上一文件/下一文件播放時(shí)的響應(yīng)時(shí)間、對(duì)進(jìn)度條進(jìn)行調(diào)整時(shí)的響應(yīng)時(shí)間,這些響應(yīng)時(shí)間都不要超過(guò)3秒。開(kāi)發(fā)工具簡(jiǎn)介Android相關(guān)技術(shù)簡(jiǎn)介Android簡(jiǎn)介Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開(kāi)源手機(jī)操作系統(tǒng)的名稱(chēng),該平臺(tái)由操作系統(tǒng)、中間件、用戶(hù)界面和應(yīng)用軟件組成,號(hào)稱(chēng)是首個(gè)為移動(dòng)終端打造的真正開(kāi)放和完整的移動(dòng)軟件。Android是基于Linux內(nèi)核的軟件平臺(tái)和操作系統(tǒng),早期由Google開(kāi)發(fā)(在華注冊(cè)商標(biāo)名為“安致”),后由開(kāi)放手機(jī)聯(lián)盟(OpenHandsetAlliance)開(kāi)發(fā)。它采用了軟件堆層(softwarestack,又名以軟件疊層)的架構(gòu),主要分為三部分。低層以Linux內(nèi)核工作為基礎(chǔ),只提供基本功能,其他的應(yīng)用軟件則由各公司自行開(kāi)發(fā),以Java作為編寫(xiě)程序的一部分。另外,為了推廣此技術(shù),Google和其它幾十個(gè)手機(jī)公司建立了開(kāi)放手機(jī)聯(lián)盟。Android架構(gòu)Android架構(gòu)如圖2-1所示:圖2.1Android架構(gòu)一個(gè)應(yīng)用程序是有很多個(gè)零件組合而成的。這些零件被稱(chēng)之為組件,這些組件共同工作才能讓?xiě)?yīng)用程序有條不紊的工作,這些組件中最重要的集中主要是活動(dòng),服務(wù),內(nèi)容提供程序,廣播接收器這幾種組件:活動(dòng):用戶(hù)可以看到的都是屬于可視UI,這些UI想要實(shí)現(xiàn)就必須依賴(lài)于動(dòng)作的產(chǎn)生,產(chǎn)生動(dòng)作的情況有兩種,當(dāng)用戶(hù)想用運(yùn)行某個(gè)程序時(shí)在主屏幕點(diǎn)擊這個(gè)應(yīng)用程序。服務(wù):服務(wù)應(yīng)用在所有的運(yùn)行時(shí)間很長(zhǎng)的程序之中,例如控制應(yīng)用程序更新的程序。內(nèi)容提供程序:內(nèi)容服務(wù)程序就好比是數(shù)據(jù)庫(kù)中的一個(gè)服務(wù)器,在大型的應(yīng)用程序中時(shí)刻進(jìn)行著數(shù)據(jù)的傳輸。廣播接收器:任何Android應(yīng)用程序都需要處理龐大的數(shù)據(jù)集,廣播接收器就是數(shù)據(jù)的處理者。用戶(hù)在下載Android的應(yīng)用程序時(shí),會(huì)同時(shí)下載一個(gè).xml的配置文件,這個(gè)文件里面主要是安裝這款應(yīng)用程序是所需要的一些配置信息。應(yīng)用程序安裝的時(shí)候,會(huì)首先加載配置文件里面的配置信息。2.1.3OpenCore多媒體框架簡(jiǎn)介在使用Android平臺(tái)進(jìn)行多媒體開(kāi)發(fā)時(shí)。用的最多的就是OpenCore。OpenCore里面包括了接口的繼承,功能的封裝還有系統(tǒng)的移植。OpenCore這個(gè)框架,主要由兩個(gè)重要的部分組成:PVPlayer:PVPlayer可以控制各種視頻,音頻的播放和回放。PVAuthor:PVAuthor主要是記錄播放的視頻流和音頻流。同時(shí)也可以記錄靜態(tài)的圖像。PVPlayer和PVAuthor一般都會(huì)放在軟件開(kāi)發(fā)工具包里面。開(kāi)發(fā)者下載這種工具包,開(kāi)發(fā)人員能在軟件開(kāi)發(fā)工具包的基礎(chǔ)上創(chuàng)建各種各樣的多媒體應(yīng)用程序。也就是手機(jī)上各種app。了解OpenCore可以從它的幾個(gè)層次上面著手,通過(guò)這些層次可以很好的了解到OpenCore的整體架構(gòu)。OpenCore的層次結(jié)構(gòu)圖如圖2-2所示:圖2.2OpenCore的層次結(jié)構(gòu)圖OSCL的全稱(chēng)是操作系統(tǒng)兼容庫(kù)。當(dāng)應(yīng)用程序在不同的手機(jī)上運(yùn)行和不同的應(yīng)用程序一起運(yùn)行時(shí)需要考慮到程序的兼容性。OSCL就是為了讓?xiě)?yīng)用程序可以更好的在不同的操作系統(tǒng)上面運(yùn)行。OSCL之所以可以完成這一項(xiàng)艱巨的任務(wù)是因?yàn)樗旧砭桶艘恍┫到y(tǒng)底層基本的操作。同時(shí)還包括了一些基本內(nèi)容。PVMF的全稱(chēng)是PV多媒體框架。在PVMF下面有一個(gè)NODE組件。NODE雖然只是一個(gè)組件,但是在使用OpenCore時(shí)可以通過(guò)這個(gè)組件來(lái)實(shí)現(xiàn)一個(gè)特定的功能。SQLite簡(jiǎn)介SQLite,是一款輕量級(jí)的關(guān)系型數(shù)據(jù)庫(kù)。由于它占用的資源非常少,所以在很多嵌入式設(shè)備都是用SQLite來(lái)存儲(chǔ)數(shù)據(jù)。SQLite目前支持Windows/Linux/Unix等等主流的操作系統(tǒng),兼容性良好??梢杂枚喾N開(kāi)發(fā)語(yǔ)言如C#、Java、PHP等來(lái)通過(guò)ODBC接口操作SQLite,十分便于編程開(kāi)發(fā)。Android作為目前主流的移動(dòng)操作系統(tǒng),完全符合SQLite占用資源少的優(yōu)勢(shì),故在Android平臺(tái)上,集成了一個(gè)嵌入式關(guān)系型數(shù)據(jù)庫(kù)—SQLite。如果你想要開(kāi)發(fā)Android應(yīng)用程序,一定需要在Android上存儲(chǔ)數(shù)據(jù),使用SQLite數(shù)據(jù)庫(kù)是一種非常好的選擇。本數(shù)據(jù)庫(kù)支持功能如下:(1)自動(dòng)建表:支持屬性來(lái)自繼承類(lèi):可根據(jù)注解自動(dòng)完成建表。(2)自動(dòng)支持增刪改:增改支持對(duì)象化操作:增刪改是數(shù)據(jù)庫(kù)操作的最基本單元,不用重復(fù)寫(xiě)這些增刪改的代碼。(3)查詢(xún)方式靈活:支持android框架提供的方式。(4)查詢(xún)結(jié)果對(duì)象化:對(duì)于查詢(xún)結(jié)果可自動(dòng)包裝為實(shí)體對(duì)象。(5)查詢(xún)結(jié)果靈活:查詢(xún)結(jié)果支持對(duì)象化,也支持結(jié)果為L(zhǎng)ist<Map<String,String>>形式,這個(gè)方法在實(shí)際項(xiàng)目中很實(shí)用,且效率更好些。多媒體播放器APP的設(shè)計(jì)系統(tǒng)總體架構(gòu)設(shè)計(jì)系統(tǒng)總體原則系統(tǒng)設(shè)計(jì)目標(biāo)是開(kāi)發(fā)一款基于安卓的多媒體播放器APP,滿足用戶(hù)查看播放列表、播放在線視頻、播放本地視頻的需要。系統(tǒng)在設(shè)計(jì)實(shí)現(xiàn)中,以APP界面友好、便于用戶(hù)操作為基本目標(biāo),通過(guò)對(duì)用戶(hù)的實(shí)際調(diào)研,對(duì)系統(tǒng)功能需求進(jìn)行分析整理,確定了系統(tǒng)總體設(shè)計(jì)的功能點(diǎn),進(jìn)一步進(jìn)行系統(tǒng)的整體設(shè)計(jì)。(1)降低系統(tǒng)耦合性,把系統(tǒng)的功能單獨(dú)規(guī)劃出來(lái)。(2)規(guī)劃好整個(gè)系統(tǒng)功能結(jié)構(gòu),確定哪些功能位于哪些功能內(nèi),哪些為子功能哪些為父功能。(3)規(guī)劃好系統(tǒng)內(nèi)業(yè)務(wù)流程和數(shù)據(jù)流向,便于系統(tǒng)規(guī)劃,明確各個(gè)模塊之間數(shù)據(jù)流向,降低功能之間的關(guān)系。3.1.2系統(tǒng)架構(gòu)設(shè)計(jì)經(jīng)過(guò)對(duì)多媒體播放器系統(tǒng)的需求調(diào)研,決定采用安卓系統(tǒng)設(shè)計(jì)非常常用的三層框架,三層框架包括:UI界面層,網(wǎng)絡(luò)層,還有業(yè)務(wù)邏輯層。(1)UI界面層這里說(shuō)的UI界面是指app中看到的內(nèi)容,原生安卓開(kāi)發(fā)提供了非常多的頁(yè)面布局實(shí)現(xiàn)方案,但是目前比較主流的方式還是通過(guò)自定義空間來(lái)布置整理頁(yè)面結(jié)構(gòu),經(jīng)過(guò)反復(fù)考慮,本次畢業(yè)設(shè)計(jì)采用簡(jiǎn)約的藍(lán)色風(fēng)格作為UI界面的整體風(fēng)格,使得功能一目了然方便實(shí)用,架構(gòu)圖如圖3-1所示:圖3.1UI界面層(2)網(wǎng)絡(luò)層在這一層中主要是想采用OKHttp網(wǎng)絡(luò)框架,這個(gè)框架封裝了非常齊全的網(wǎng)絡(luò)數(shù)據(jù)處理功能,讓我們無(wú)需了解網(wǎng)絡(luò)協(xié)議,只需要滿足框架中的接口方法就可以。減少了非常多的工作量。架構(gòu)圖如圖3-2所示:圖3.2網(wǎng)絡(luò)傳輸層(3)業(yè)務(wù)邏輯層在這一層中,接收到網(wǎng)絡(luò)層傳輸?shù)牟煌瑪?shù)據(jù),我們根據(jù)業(yè)務(wù)邏輯進(jìn)行處理。滿足網(wǎng)絡(luò)層傳輸?shù)恼?qǐng)求。對(duì)于一些對(duì)安卓系統(tǒng)的功能對(duì)接,比如訪問(wèn)安卓系統(tǒng)的文件系統(tǒng)、調(diào)用系統(tǒng)的藍(lán)牙權(quán)限。架構(gòu)圖如圖3-3所示:圖3.3網(wǎng)絡(luò)傳輸層系統(tǒng)功能結(jié)構(gòu)設(shè)計(jì)總體功能結(jié)構(gòu)設(shè)計(jì)根據(jù)系統(tǒng)的需求分析結(jié)果,對(duì)系統(tǒng)的框架結(jié)構(gòu)進(jìn)行簡(jiǎn)單規(guī)劃設(shè)計(jì)。以繪圖的方式,將系統(tǒng)整體功能結(jié)構(gòu)按功能從屬關(guān)系進(jìn)行表達(dá),在安卓播放器中,有收藏列表、在線列表和本地列表和個(gè)人中心的功能模塊,在個(gè)人中心又有歷史播放記錄模塊還能退出登錄,每個(gè)播放列表都含有瀏覽文件列表和播放列表中文件的功能。系統(tǒng)整體功能結(jié)構(gòu)設(shè)計(jì)如圖3-4所示:圖3.4系統(tǒng)整體功能結(jié)構(gòu)設(shè)計(jì)系統(tǒng)要滿足用戶(hù)的收藏列表需求,因此構(gòu)造一個(gè)收藏列表模塊,在這個(gè)模塊,用戶(hù)收藏的文件以文件列表形式展示在界面中,用戶(hù)可以瀏覽列表文件的基本介紹信息,可以選擇點(diǎn)擊文件進(jìn)行播放。系統(tǒng)要滿足用戶(hù)在線查看一些流行資訊多媒體的需求,因此構(gòu)造一個(gè)在線視頻列表,展示推薦一些在線視頻,用戶(hù)可以瀏覽這些視頻簡(jiǎn)介信息以及視頻播放時(shí)截屏圖片信息,可以點(diǎn)擊某個(gè)視頻進(jìn)行在線觀看,這要求用戶(hù)手機(jī)有網(wǎng)絡(luò)才可以觀看。系統(tǒng)要滿足用戶(hù)對(duì)本地視頻音頻文件的查看瀏覽需求,因此構(gòu)建一個(gè)本地列表模塊,在這個(gè)模塊,用戶(hù)可以將本地文件導(dǎo)入到APP中,APP自動(dòng)判斷導(dǎo)入的文件屬性,將符合播放的文件導(dǎo)入列表之中,手機(jī)文件一般存儲(chǔ)較多,因此設(shè)置滑動(dòng)瀏覽查看的功能,用戶(hù)可以滑動(dòng)界面瀏覽文件列表中文件信息,也可以查詢(xún)文件,還可以點(diǎn)擊播放選擇的文件。系統(tǒng)要滿足用戶(hù)查看歷史播放過(guò)得記錄信息,將這個(gè)功能模塊歸屬在個(gè)人中心模塊中,用戶(hù)進(jìn)入個(gè)人中心模塊可以點(diǎn)擊進(jìn)入歷史記錄模塊,瀏覽自己播放記錄,并能對(duì)記錄中的文件進(jìn)行點(diǎn)擊播放,還能在個(gè)人中心模塊點(diǎn)擊退出,直接退出APP,返回手機(jī)桌面。詳細(xì)功能模塊設(shè)計(jì)根據(jù)整體功能模塊設(shè)計(jì),可以看出,系統(tǒng)比較重要的基本功能模塊就是文件列表模塊以及文件播放模塊,以下分別對(duì)兩類(lèi)功能模塊進(jìn)行詳細(xì)設(shè)計(jì),以用戶(hù)的角度,模擬兩模塊的使用。(1)視頻音頻列表模塊設(shè)計(jì)用戶(hù)進(jìn)入視頻音頻列表界面,音頻視頻以列表的形式展示在手機(jī)界面中,從上到下排列著音頻視頻文件,列表中展示文件的名稱(chēng)、文件類(lèi)型、標(biāo)簽和時(shí)長(zhǎng)信息。文件類(lèi)型的展示幫助用戶(hù)分辨文件是音頻還是視頻,名稱(chēng)幫助用戶(hù)分辨文件。在列表中,每條文件信息都可以被點(diǎn)擊,被點(diǎn)擊后就進(jìn)入該文件播放界面進(jìn)行該文件的播放。(2)播放界面模塊設(shè)計(jì)用戶(hù)進(jìn)入播放界面,播放的文件一般會(huì)有音頻文件和視頻文件兩種,設(shè)計(jì)視頻文件和音頻文件的聲音都可以正常播放,視頻文件的畫(huà)面可以正常播放,音頻文件的畫(huà)面則以黑色屏幕代替。在播放界面下方顯示播放進(jìn)度條,為了不影響用戶(hù)觀看視頻感受,視頻進(jìn)度條默認(rèn)隱藏在界面中,并設(shè)計(jì)進(jìn)度條可通過(guò)點(diǎn)擊屏幕方式顯示出來(lái)。當(dāng)用戶(hù)想要控制進(jìn)度條時(shí),點(diǎn)擊屏幕就可浮現(xiàn)播放進(jìn)度條,進(jìn)度條顯示視頻總時(shí)長(zhǎng)、已播放時(shí)長(zhǎng)、并設(shè)置暫停、播放上一文件和播放下一文件的控制按鈕,設(shè)置進(jìn)度條可拖動(dòng)進(jìn)度,這樣用戶(hù)可以根據(jù)拖動(dòng)進(jìn)度條進(jìn)度控制視頻音頻播放進(jìn)度。(3)本地文件播放設(shè)計(jì)用戶(hù)可以通過(guò)文件上傳的方式,將安卓文件系統(tǒng)的視頻和音頻上傳到系統(tǒng)中,通過(guò)播放功能進(jìn)行播放。(4)收藏模塊設(shè)計(jì)用戶(hù)在本地列表中,長(zhǎng)按某條音視頻,實(shí)現(xiàn)收藏,在我的收藏夾中可以看到之前選擇的視頻。(5)個(gè)人中心模塊設(shè)計(jì)用戶(hù)進(jìn)入個(gè)人中心后,可以輸入賬號(hào)密碼進(jìn)行登錄,輸入賬號(hào)密碼后需要和本地?cái)?shù)據(jù)庫(kù)的賬號(hào)密碼紀(jì)錄進(jìn)行對(duì)比。比對(duì)成功后可以進(jìn)入登錄頁(yè)面,失敗后提示賬號(hào)密碼錯(cuò)誤。登陸后可以查看之前看視頻的歷史紀(jì)錄。系統(tǒng)流程設(shè)計(jì)視頻播放整體流程并不復(fù)雜,用戶(hù)進(jìn)入系統(tǒng)主界面。系統(tǒng)主界面中包含推薦、網(wǎng)絡(luò)、本地三個(gè)菜單,每個(gè)菜單中加載不同類(lèi)型的音視頻列表數(shù)據(jù)信息,查看網(wǎng)絡(luò)音視頻播放需要用戶(hù)選擇網(wǎng)絡(luò)菜單,進(jìn)入網(wǎng)絡(luò)菜單后,列表頁(yè)會(huì)在加載在代碼中預(yù)設(shè)置好的幾個(gè)視頻連接視頻,這些視頻都是來(lái)自互聯(lián)網(wǎng),用戶(hù)根據(jù)列表信息選擇自己感興趣的音視頻文件,點(diǎn)擊音視頻列表,進(jìn)入音視頻播放界面。圖3.5網(wǎng)絡(luò)音視頻模塊流程設(shè)計(jì)本地音視頻播放進(jìn)入系統(tǒng)后,主界面中本地菜單中可以添加、查詢(xún)、播放手機(jī)本地的音視頻,用戶(hù)登錄系統(tǒng)后,首先查看列表頁(yè)中是否含有用戶(hù)想查看的音視頻文件,如果該文件已經(jīng)包含在列表中,用戶(hù)就可以直接點(diǎn)擊列表數(shù)據(jù),跳轉(zhuǎn)到播放頁(yè)面。如果該文件沒(méi)有在列表中,用戶(hù)需要自行將文件導(dǎo)入APP內(nèi),點(diǎn)擊導(dǎo)入按鈕,會(huì)加載出手機(jī)本地文件管理系統(tǒng)的界面,通過(guò)文件目錄的跳轉(zhuǎn),找到想要播放的本地文件,點(diǎn)擊文件,導(dǎo)入到系統(tǒng)中。導(dǎo)入成功后該視頻信息會(huì)加載到列表頁(yè)中,點(diǎn)擊該條信息,回跳到播放列表播放該音視頻。本地音視頻模塊播放流程設(shè)計(jì)如圖3-6所示:圖3.6本地音視頻播放流程設(shè)計(jì)本地文件導(dǎo)入在默認(rèn)頁(yè)推薦收藏音視頻文件列表界面,用戶(hù)可以點(diǎn)擊下方本地音視頻文件列表界面鏈接進(jìn)入本地音視頻文件列表界面,點(diǎn)擊列表中音視頻文件進(jìn)入播放頁(yè),也可以退出播放頁(yè)返回到本地音視頻文件列表中。在本地音視頻文件列表,用戶(hù)點(diǎn)擊導(dǎo)入本地文件可以進(jìn)行本地文件導(dǎo)入。用戶(hù)在本地音視頻文件列表界面的輸入框中輸入查詢(xún)條件,點(diǎn)擊查詢(xún)按鈕,可以進(jìn)行文件查詢(xún)。本地音導(dǎo)入文件流程設(shè)計(jì)如圖3-7所示:圖3.7本地文件導(dǎo)入流程設(shè)計(jì)收藏音視頻進(jìn)入系統(tǒng)主界面后,會(huì)在推薦菜單在推薦收藏音視頻文件列表中,用戶(hù)可以點(diǎn)擊列表中音視頻文件進(jìn)入播放頁(yè),也可以退出播放頁(yè)返回到收藏推薦音視頻文件列表中,然后可以退出系統(tǒng)。收藏推薦音視頻模塊流程設(shè)計(jì)如圖3-8所示:圖3.8收藏推薦音視頻模塊流程設(shè)計(jì)個(gè)人中心在默認(rèn)頁(yè)推薦收藏音視頻文件列表界面,用戶(hù)可以點(diǎn)擊下方個(gè)人中心界面鏈接進(jìn)入個(gè)人中心界面,點(diǎn)擊界面的歷史記錄鏈接進(jìn)入歷史記錄界面。歷史記錄查看流程設(shè)計(jì)如圖3-9所示:圖3-9歷史記錄查看流程設(shè)計(jì)多媒體播放器APP的實(shí)現(xiàn)Android環(huán)境的搭建第一步:安裝JDK第二步:配置Windows上JDK的變量環(huán)境配置變量如圖4-1所示:圖4.1配置變量配置環(huán)境變量主要分為三個(gè)部分。(1)JAVA_HOME在電腦中添加一個(gè)新的JAVA_HOME變量,將jdk安裝完成后在電腦里面的路徑作為變量值。(2)PathPath屬性是電腦里面本來(lái)就存在的,打開(kāi)之后就能直接進(jìn)行編輯。(3)CLASSPATHjava程序在編譯通過(guò)之后會(huì)產(chǎn)生.class文件。CLASSPATH的作用就是讓java的運(yùn)行環(huán)境可以更加準(zhǔn)確快速的找到.class文件。第三步:Eclipse開(kāi)發(fā)工具的下載與安裝。Eclipse是一個(gè)集成的開(kāi)發(fā)環(huán)境,不需要用戶(hù)進(jìn)行安裝,下載完成后直接找到eclipse的.exe文件即可打開(kāi)。第四步:AndroidSDK工具的下載與安裝。開(kāi)發(fā)人員可以從AndroidSDK中獲取sdk提供的一些基本庫(kù)和tools工具。安裝sdk工具如圖4-2所示:圖4.2安裝sdk工具第五步:為Eclipse安裝ADT插件。選擇eclipse—》help—》installnewsoftware點(diǎn)擊add打開(kāi)添加的對(duì)話框,點(diǎn)擊achive添加ADT壓縮包。安裝ADT插件如圖4-3所示:圖4.3安裝ADT系統(tǒng)功能實(shí)現(xiàn)系統(tǒng)圖標(biāo)和歡迎頁(yè)實(shí)現(xiàn)手機(jī)APP一般以圖表形式展示在手機(jī)界面,用戶(hù)通過(guò)點(diǎn)擊圖標(biāo)進(jìn)入系統(tǒng),安卓多媒體播放器APP圖標(biāo)如圖4-4所示:圖4.4安卓多媒體播放器APP桌面圖標(biāo)手機(jī)在進(jìn)入系統(tǒng)之前,在系統(tǒng)APP加載的時(shí)候,會(huì)有幾秒的進(jìn)入系統(tǒng)時(shí)間,這時(shí)候就需要系統(tǒng)歡迎頁(yè)展示在手機(jī)界面,緩解這幾秒的尷尬。系統(tǒng)歡迎頁(yè)實(shí)現(xiàn)如圖4-5所示:圖4.5系統(tǒng)歡迎頁(yè)初始化推薦、網(wǎng)絡(luò)、本地、個(gè)人四個(gè)菜單關(guān)鍵代碼如下:privatevoidinit(){rGroup=(RadioGroup)findViewById(R.id.RadioGroup);tabHost=this.getTabHost();tabSpec=tabHost.newTabSpec(HOT).setIndicator(HOT).setContent(newIntent(this,TuiJianActivity.class));//推薦tabHost.addTab(tabSpec);tabSpec=tabHost.newTabSpec(TJ).setIndicator(TJ).setContent(newIntent(this,NetworkActivity.class));//網(wǎng)絡(luò)tabHost.addTab(tabSpec);tabSpec=tabHost.newTabSpec(HOME).setIndicator(HOME).setContent(newIntent(this,LocalActivity.class));//本地tabHost.addTab(tabSpec);tabSpec=tabHost.newTabSpec(LOCAL).setIndicator(LOCAL).setContent(newIntent(this,HomeActivity.class));//個(gè)人tabHost.addTab(tabSpec);}收藏列表實(shí)現(xiàn)在本地文件列表界面,選擇某一文件,長(zhǎng)按該文件,出現(xiàn)是否收藏彈窗,點(diǎn)擊“確定”按鈕,則該文件出現(xiàn)在收藏推薦列表之中。收藏文件彈窗如圖4-6所示:圖4.6收藏文件彈窗收藏列表中的播放內(nèi)容是根據(jù)用戶(hù)在其他文件列表進(jìn)行文件推薦收藏而生成的,將這些文件以列表形式展示在收藏列表界面,用戶(hù)點(diǎn)擊某個(gè)文件就可以播放該文件。收藏列表界面如圖4-7所示:圖4.7收藏列表界面在線文件列表實(shí)現(xiàn)在線文件是系統(tǒng)推薦的在線視頻文件,用戶(hù)在有網(wǎng)絡(luò)情況下可以進(jìn)行視頻觀看,以及視頻列表瀏覽。在線文件列表實(shí)現(xiàn)如圖4-8所示:圖4.8在線文件列表實(shí)現(xiàn)本地列表實(shí)現(xiàn)本地列表功能下包括了視頻列表瀏覽、查詢(xún)功能、掃描本地文件功能等子功能,在本地列表界面,上方輸入框中輸入關(guān)鍵字,點(diǎn)擊查詢(xún)按鈕,就可以進(jìn)行文件查詢(xún),點(diǎn)擊查詢(xún)功能下的“掃描SD卡的所有音視頻信息”按鈕,就可以進(jìn)行文件導(dǎo)入。收藏模塊的收藏文件功能也基于本地文件實(shí)現(xiàn)。本地列表實(shí)現(xiàn)如圖4-9所示:圖4.9本地列表實(shí)現(xiàn)個(gè)人中心實(shí)現(xiàn)在個(gè)人中心模塊,包括查看歷史記錄和退出APP兩大功能模塊。用戶(hù)可以查看歷史記錄,點(diǎn)擊“查看歷史記錄”按鈕,進(jìn)入歷史記錄列表之中,查看歷史觀看的文件列表,點(diǎn)擊列表文件可以播放該文件內(nèi)容??梢渣c(diǎn)擊退出按鈕,點(diǎn)擊退出按鈕,出現(xiàn)是否確定剛推出彈窗,再次點(diǎn)擊確定,就退出整個(gè)APP系統(tǒng)。個(gè)人中心模塊實(shí)現(xiàn)界面如圖4-10所示:圖4.10個(gè)人中心模塊歷史記錄列表實(shí)現(xiàn)界面如圖4-11所示:圖4.11歷史記錄列表實(shí)現(xiàn)退出彈窗實(shí)現(xiàn)如圖4-12所示:圖4.12退出彈窗播放界面實(shí)現(xiàn)播放界面是多媒體播放系統(tǒng)核心實(shí)現(xiàn)模塊,用戶(hù)進(jìn)入播放界面,視頻文件正常播放聲音和畫(huà)面,音頻播放聲音,畫(huà)面為黑色,在播放界面下方顯示播放進(jìn)度條,進(jìn)度條顯示視頻總時(shí)長(zhǎng)、已播放時(shí)長(zhǎng)、并設(shè)置暫停、播放上一文件和播放下一文件的控制按鈕。播放視頻界面實(shí)現(xiàn)如圖4-13所示:圖4.13播放界面實(shí)現(xiàn)關(guān)鍵代碼如下:設(shè)置視頻路徑和視頻名稱(chēng),查看是否有網(wǎng)絡(luò)緩存,初始化播放器窗口。protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);Log.i("PlayActivity","onCreate");url_s=getIntent().getStringExtra("url");title_s=getIntent().getStringExtra("title");if(getIntent().getBooleanExtra("flag",true)){HistoryServicehistoryService=newHistoryService(PlayActivity.this);historyService.insert(newHistory(1,title_s,url_s));}init_videoview();}privatevoidinit_videoview(){Uriuri=Uri.parse(url_s);VideoViewvideoView=(VideoView)this.findViewById(R.id.video_view);videoView.setMediaController(newMediaController(this));videoView.setVideoURI(uri);videoView.start();videoView.requestFocus();}
系統(tǒng)運(yùn)行測(cè)試系統(tǒng)測(cè)試目的對(duì)安卓多媒體播放器APP進(jìn)行測(cè)試的目的就是為了發(fā)現(xiàn)系統(tǒng)軟件中存在的問(wèn)題,或者將系統(tǒng)軟件中潛在的一些問(wèn)題挖掘出來(lái),不光發(fā)現(xiàn)問(wèn)題,還要將發(fā)現(xiàn)的問(wèn)題進(jìn)行有效的解決,從而進(jìn)一步確保軟件系統(tǒng)在正式投入使用的時(shí)候,能夠良好運(yùn)行,穩(wěn)定運(yùn)行。由于在安卓多媒體播放器APP搭建成功后,本地測(cè)試條件有限,將整個(gè)系統(tǒng)進(jìn)行運(yùn)行測(cè)試基于個(gè)人手機(jī)進(jìn)行,測(cè)試系統(tǒng)的安裝、運(yùn)行一系列流程,測(cè)試系統(tǒng)功能模塊是否良好,測(cè)試系統(tǒng)的性能是否穩(wěn)定,測(cè)試安卓多媒體APP在安卓手機(jī)中運(yùn)行時(shí)對(duì)用戶(hù)的動(dòng)作能否及時(shí)有效的反饋。功能測(cè)試收藏測(cè)試測(cè)試條件:在收藏推薦列表中,本來(lái)并沒(méi)有推薦文件。測(cè)試過(guò)程:在系統(tǒng)本地中選擇文件名為“北辰吖-趙英俊-送你一朵小紅花.mp3”的文件,長(zhǎng)按,出現(xiàn)彈窗“確定設(shè)置為推薦音視頻”點(diǎn)擊彈窗下確定。測(cè)試結(jié)果:出現(xiàn)java.lang.NullPointerException的控制臺(tái)異常信息。后續(xù)處理:對(duì)空數(shù)據(jù)進(jìn)行非空判斷,添加代碼后成功添加這個(gè)文件到收藏推薦文件列表中。收藏添加測(cè)試異常信息如圖5-1所示:圖5.1空指針異常信息播放測(cè)試播放的文件有視頻和音頻兩種,分別對(duì)視頻音頻播放進(jìn)行測(cè)試。(1)視頻播放暫停測(cè)試測(cè)試條件:本地測(cè)試文件列表中mp4文件。測(cè)試過(guò)程:點(diǎn)擊名字為“VID_20210311_162057.mp4”的文件,進(jìn)入視頻播放界面,點(diǎn)擊播放界面屏幕,點(diǎn)擊出現(xiàn)在屏幕中播放進(jìn)度條的兩條豎杠的暫停按鈕。測(cè)試結(jié)果:出現(xiàn)java.lang.NumberFormatException的控制臺(tái)異常信息。后續(xù)處理:對(duì)參數(shù)進(jìn)行格式化,對(duì)參數(shù)進(jìn)行校驗(yàn),使得參數(shù)一定為數(shù)字類(lèi)型。添加代碼后成功添加這個(gè)文件到收藏推薦文件列表中。視頻停止播放,暫停按鈕變成了三角形的播放按鈕。視頻播放暫停異常信息如圖5-2所示:圖5.2格式轉(zhuǎn)換異常信息(2)音頻播放測(cè)試測(cè)試條件:本地測(cè)試文件列表中mp3文件。測(cè)試過(guò)程:點(diǎn)擊名字為“李易峰-四葉草(live).mp3”的文件,進(jìn)入音頻播放界面。測(cè)試結(jié)果:界面屏幕為黑色,播放條顯示播放進(jìn)度,手機(jī)播放李易峰的《四葉草》歌曲。音頻播放測(cè)試如圖5-3所示:圖5.3音頻播放測(cè)試清空歷史記錄測(cè)試測(cè)試條件:在收藏推薦列表中,一系列歷史瀏覽記錄文件。測(cè)試過(guò)程:在界面點(diǎn)擊上方“清空歷史記錄”按鈕,出現(xiàn)彈窗“確定刪除歷史記錄”點(diǎn)擊彈窗下確定。測(cè)試結(jié)果:歷史記錄文件列表清空。清空歷史記錄測(cè)試如圖5-4所示:圖5.4清空歷史記錄測(cè)試結(jié)論基于安卓的多媒體播放器APP
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度數(shù)字經(jīng)濟(jì)投資入股協(xié)議書(shū)
- 二零二五年度個(gè)人手房車(chē)位產(chǎn)權(quán)轉(zhuǎn)讓及車(chē)位使用權(quán)及車(chē)位租賃合同
- 2025形婚協(xié)議書(shū)模板與婚后共同生活糾紛調(diào)解服務(wù)合同
- 二零二五年度海洋資源開(kāi)發(fā)項(xiàng)目終止合作備忘錄
- 二零二五年度戶(hù)外休閑用品區(qū)域獨(dú)家代理合作協(xié)議
- 2025年度股權(quán)內(nèi)部轉(zhuǎn)讓與公司風(fēng)險(xiǎn)控制協(xié)議
- 二零二五年度夫妻共同生活費(fèi)用分擔(dān)協(xié)議
- 個(gè)人運(yùn)輸合同書(shū)(2025年度跨境物流)
- 2025年度知識(shí)產(chǎn)權(quán)居間許可合同
- 2024年六年級(jí)英語(yǔ)上冊(cè)模擬考試
- 無(wú)人機(jī)應(yīng)用技術(shù)產(chǎn)教融合整體解決方案
- AQ6111-2023個(gè)體防護(hù)裝備安全管理規(guī)范
- 2024年山東省濰坊市昌邑市中考一模語(yǔ)文試題【含答案解析】
- 行政許可決定審批表(事務(wù)文書(shū)模板)
- 國(guó)開(kāi)2024春《人文英語(yǔ)4》第5-8單元作文練習(xí)參考答案
- 《藏象學(xué)說(shuō)-五臟》醫(yī)學(xué)課件
- 備品備件供應(yīng)方案
- 論《京華煙云》中的民俗文化定稿
- 全國(guó)計(jì)算機(jī)等級(jí)考試(二級(jí))考試題庫(kù)【黃金題型】
- 2023年鹽城射陽(yáng)縣興橋鎮(zhèn)招聘村(社區(qū))干部考試真題及答案
- 呼吸衰竭完整課件
評(píng)論
0/150
提交評(píng)論