<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于Android系統(tǒng)的影音播放器設(shè)計(jì)

          基于Android系統(tǒng)的影音播放器設(shè)計(jì)

          作者: 時(shí)間:2011-04-24 來源:網(wǎng)絡(luò) 收藏
          0 引言

            Android一詞的本義指“機(jī)器人”,同時(shí)也是Google于2007年11月5日宣布的基于Linux平臺(tái)的開源移動(dòng)終端操作系統(tǒng)的名稱,該平臺(tái)由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成,是首個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件。

            隨著科技的不斷發(fā)展,手機(jī)不再只是人們?nèi)粘I畹囊苿?dòng)通信工具,而是一個(gè)多媒體平臺(tái),可提供強(qiáng)大的多媒體功能,越來越多的人喜歡用手機(jī)聽音樂、看電影。Android系統(tǒng)內(nèi)置的音樂播放器基于媒體庫對(duì)歌曲進(jìn)行管理,并且不支持歌詞的同步顯示。對(duì)于部分已經(jīng)習(xí)慣的基于文件瀏覽器形式播放器的用戶,操作起來會(huì)有所不便。對(duì)于Android手機(jī)操作系統(tǒng),可以充分利用它豐富的可編程擴(kuò)展性,開發(fā)出新的播放器應(yīng)用軟件。

            1 Android平臺(tái)

            Android軟件開發(fā)主要涉及到的相關(guān)技術(shù)包括Android SDK(開發(fā)插件、調(diào)試工具包等)、Android系統(tǒng)架構(gòu)和Android應(yīng)用程序組件。

            1.1 Android SDK

            Android SDK(Software Development Kit)提供了Android平臺(tái)上使用Java語言進(jìn)行Android應(yīng)用開發(fā)的API接口和工具。其中,最重要的工具是Android模擬器和Eclipse的Android開發(fā)工其插件,同時(shí)SDK也包含了各種在模擬器上用于調(diào)試、打包和安裝的工具。

            Eclipse IDE的Android開發(fā)工具插件(AndroidDevelopment Tools Plugin for the Eclipse IDE,ADT)大大擴(kuò)展了Eclipse集成環(huán)境功能,使得生成和調(diào)試Android應(yīng)用程序既容易又迅速。使用Eclipse,ADT插件可以加快開發(fā)Android應(yīng)用程序的速度。

            Android模擬器是在計(jì)算機(jī)上運(yùn)行的一個(gè)虛擬移動(dòng)設(shè)備,可以使用模擬器來模擬一個(gè)實(shí)際的Android運(yùn)行環(huán)境,來設(shè)計(jì)、調(diào)試和測(cè)試應(yīng)用程序。

            Dalvik調(diào)試監(jiān)視器服務(wù)(Dalvik Debug MonitorService,DDMS)集成了Dalvik(為Android平臺(tái)定制的虛擬機(jī)(VM)),能夠在模擬器或者設(shè)備上管理進(jìn)程并協(xié)助調(diào)試。DDMS提供進(jìn)程管理,產(chǎn)生跟蹤數(shù)據(jù),觀察堆和線程信息,截取模擬器屏幕畫面,模擬來電或短信等功能。

            1.2 Android系統(tǒng)架構(gòu)

            Android是一個(gè)專門針對(duì)移動(dòng)設(shè)備的軟件集,它包括一個(gè)操作系統(tǒng),中間件和一些重要的應(yīng)用程序。Android的系統(tǒng)架構(gòu)從上往下依次是應(yīng)用程序、應(yīng)用程序框架和組件、Android運(yùn)行時(shí)庫和其他庫、優(yōu)化的Linux內(nèi)核。

            1.3 Android應(yīng)用程序的組件

            手機(jī)的運(yùn)行環(huán)境比較復(fù)雜,一個(gè)程序運(yùn)行時(shí)經(jīng)常會(huì)出現(xiàn)很多的突發(fā)情況,例如,來電或者短信及電量不足等。這些問題在Android中都有解決方案,在Android的應(yīng)用程序中,以下幾個(gè)組件特別重要:

            (1)Activity

            顧名思義,Activity就是活動(dòng)。應(yīng)用程序必須至少包含一個(gè)Activity。Activity提供了一個(gè)虛擬的用戶接口,每一個(gè)Activity都有一個(gè)默認(rèn)的窗口可以用來顯示用戶界面,一般情況下,它是全屏的窗口。例如,影音播放軟件的每個(gè)用戶界面就是Activity。

            (2)Service

            Service與Activity的主要區(qū)別在于,Service是在后臺(tái)活動(dòng)的,它沒有用戶界面。典型的應(yīng)用場(chǎng)景是,用戶選擇了一個(gè)播放列表開始播放后,離開了該用戶界面(Activity),如果仍然希望歌曲不會(huì)暫停,就可以用Service去調(diào)用播放器,而不是在Activity中調(diào)用播放器。

            (3)Intent

            在Android中,每一個(gè)行為都可以抽象為一個(gè)Intent??梢院?jiǎn)單地把Intent理解為一個(gè)包含了數(shù)據(jù)的消息。Intent可以用于啟動(dòng)一個(gè)Act-ivity或者Service,可以用于進(jìn)程間的通信。事實(shí)上,應(yīng)用程序的啟動(dòng)也是通過Intent實(shí)現(xiàn)的。

            (4)Content providers

            Android平臺(tái)內(nèi)置了一套SQLite數(shù)據(jù)儲(chǔ)存機(jī)制,并包含一系列管理SQLite Database的相關(guān)方法。在應(yīng)用程序中,可以通過Content prov-iders訪問數(shù)據(jù)庫。每個(gè)Content provider都定義了一系列的方法用于訪問它對(duì)應(yīng)的數(shù)據(jù)庫。應(yīng)用程序在新建數(shù)據(jù)庫時(shí)也可以定義相應(yīng)的Con-tent provider用于向其他應(yīng)用程序共享數(shù)據(jù)。一般情況下,應(yīng)用程序不直接調(diào)用Content provider定義的函數(shù),而是通過ContentResolver間接調(diào)用。這樣設(shè)計(jì)的好處是一個(gè)ContentResolver可以訪問任何的Content provider,統(tǒng)一了接口。

            2 硬件平臺(tái)

            系統(tǒng)的硬件平臺(tái)采用基于OMAP3530的開發(fā)板DevKit8000。美國TI公司的OMAP3530應(yīng)用處理器集成了600 MHz的ARM Cortex-A8 CPU內(nèi)核和430 MHz的C64x+DSP內(nèi)核,并提供了USB 2.OOTG,SD/MMC和LCD等豐富的外設(shè)接口,適用于各種無線手持終端應(yīng)用。DevKit8000開發(fā)板外接了一個(gè)4.3寸的LCD屏、電阻式觸摸屏和音頻輸入/輸出接口,可以用于對(duì)基于Android系統(tǒng)的影音播放器的開發(fā)。

            通過打補(bǔ)丁包和開發(fā)LCD驅(qū)動(dòng)、觸摸屏驅(qū)動(dòng)、按鍵驅(qū)動(dòng)等外設(shè)驅(qū)動(dòng),在DevKit8000開發(fā)板上移植了版本為6.2.29的Linux內(nèi)核和版本為1.6的Android系統(tǒng)。

            3 Android影音播放器軟件開發(fā)

            3.1 軟件功能

            Android的影音播放軟件主要包括以下功能:

            (1)播放視頻

            支持快進(jìn)、快退、暫停、繼續(xù)和進(jìn)度拖拽。

            (2)播放音頻

            支持快進(jìn)、快退、上一首、下一首、暫停、繼續(xù)、停止和進(jìn)度拖拽;支持隨機(jī)播放、循環(huán)播放兩種模式;支持歌詞同步顯示。

          3.2 各模塊之間的關(guān)系

            影音播放軟件工程文件主要包括src文件夾(Java源碼)、res文件夾(資源文件)和AndroidManifest.xml(程序清單)。軟件主要由8個(gè)Activities組成,每個(gè)Activity對(duì)應(yīng)于一個(gè)模塊。不同的Activities通過Intent進(jìn)行通信和相互調(diào)用。

            各個(gè)模塊之間的關(guān)系如圖1所示。

            

          各個(gè)模塊之間的關(guān)系

            視頻播放調(diào)用順序依次是啟動(dòng)畫面>、主菜單>、文件瀏覽器>、視頻播放器>;

            音頻播放調(diào)用順序依次是啟動(dòng)畫面>、主菜單>、播放列表管理>、播放列表內(nèi)容管理>、正在播放>。在正在播放>的界面上。點(diǎn)擊相應(yīng)的按鈕就可以執(zhí)行歌詞同步顯示功能。

            在工程目錄的AndroidManifest.xml(清單文件)里面,添加各Activity的說明。下面為對(duì)應(yīng)啟動(dòng)畫面的描述:

            

          對(duì)應(yīng)啟動(dòng)畫面的描述

            3.3 軟件模塊

            根據(jù)影音播放軟件功能,可以將軟件劃分為以下幾個(gè)模塊:

            (1)啟動(dòng)畫面>模塊。主要功能是顯示軟件啟動(dòng)畫面。利用定時(shí)器線程去控制啟動(dòng)畫面顯示時(shí)間,并且當(dāng)用戶按下按鍵的時(shí)候,會(huì)立即中斷啟動(dòng)畫面的顯示并跳轉(zhuǎn)到主菜單>模塊。

            (2)主菜單>模塊。主要功能是提供播放軟件的用戶界面。用戶界面由Android的XML配置生成。

            主菜單提供三個(gè)選項(xiàng),分別是視頻播放、音頻播放和退出程序;視頻播放時(shí),調(diào)用文件瀏覽器>模塊,讓用戶選擇需要播放的視頻文件。音頻播放時(shí),調(diào)用播放列表管理>模塊,讓用戶選擇需要播放的列表。

            (3)文件瀏覽器>模塊。用于瀏覽內(nèi)存卡上的文件。如果路徑是文件夾,則列出該文件央下的所有文件;如果路徑是文件,則先檢查文件擴(kuò)展名是否為支持的視頻格式,如果是,則調(diào)用系統(tǒng)內(nèi)置的播放器播放。

            (4)音頻播放>模塊。它包括以下幾個(gè)模塊:

           ?、俨シ帕斜砉芾?gt;模塊。主要功能是添加、刪除、重命名列表。通過Content providers訪問系統(tǒng)的播放列表數(shù)據(jù)庫,并利用修改的結(jié)果更新數(shù)據(jù)庫。因?yàn)椴捎玫氖窍到y(tǒng)的數(shù)據(jù)庫,所以與系統(tǒng)內(nèi)置的音樂播放器列表共用。同時(shí),它還提供添加列表內(nèi)容的接口。通過播放列表管理模塊進(jìn)入到播放列表內(nèi)容管理>模塊。

           ?、诓シ帕斜韮?nèi)容管理>模塊。主要功能是添加、刪除、多選播放列表中的歌曲。在Android中,每個(gè)列表都會(huì)有一個(gè)相應(yīng)的歹盯表內(nèi)容庫,保存了該列表里面所包含的歌曲ID。通過ContentProviders可以訪問并修改。其中,添加功能是基于文件瀏覽器實(shí)現(xiàn)的,在文件瀏覽器中可以對(duì)音樂文件的進(jìn)行標(biāo)記和添加。

           ?、壅诓シ?gt;模塊。主要功能是顯示歌曲的相關(guān)信息(專輯封面、專輯名稱、歌手、長度等)和顯示正在播放歌曲的時(shí)間進(jìn)度,控制歌曲的播放。

            正在播放>模塊的界面用XML配置生成。

            實(shí)際使用的效果圖如圖2所示。

            

          實(shí)際使用的效果圖

            在Android的音樂庫已經(jīng)將歌曲的Idv2或Idv3標(biāo)簽進(jìn)行解析,并將歌曲的相關(guān)信息(包括演唱者、流派、時(shí)長等)保存在媒體數(shù)據(jù)庫中。只需要通過Content providers對(duì)該數(shù)據(jù)庫進(jìn)行訪問,就可以得到相關(guān)的信息并送顯示。獲取歌曲相關(guān)信息的程序源碼如下:

           


          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();