影音播放軟件工程文件主要包括src文件夾(Java源碼)、res文件夾(資源文件)和AndroidManifest.xml(程序清單)。軟件主要由8個Activities組成,每個Activity對應(yīng)于一個模塊。不同的Activities通過Intent進行通信和相互調(diào)用。
各個模塊之間的關(guān)系如圖1所示。
?
視頻播放調(diào)用順序依次是<啟動畫面>、<主菜單>、<文件瀏覽器>、<視頻播放器>;
音頻播放調(diào)用順序依次是<啟動畫面>、<主菜單>、<播放列表管理>、<播放列表內(nèi)容管理>、<正在播放>。在<正在播放>的界面上。點擊相應(yīng)的按鈕就可以執(zhí)行歌詞同步顯示功能。
在工程目錄的AndroidManifest.xml(清單文件)里面,添加各Activity的說明。下面為對應(yīng)啟動畫面的描述:
?
3.3 軟件模塊
根據(jù)影音播放軟件功能,可以將軟件劃分為以下幾個模塊:
(1)<啟動畫面>模塊。主要功能是顯示軟件啟動畫面。利用定時器線程去控制啟動畫面顯示時間,并且當用戶按下按鍵的時候,會立即中斷啟動畫面的顯示并跳轉(zhuǎn)到<主菜單>模塊。
(2)<主菜單>模塊。主要功能是提供播放軟件的用戶界面。用戶界面由Android的XML配置生成。
主菜單提供三個選項,分別是視頻播放、音頻播放和退出程序;視頻播放時,調(diào)用<文件瀏覽器>模塊,讓用戶選擇需要播放的視頻文件。音頻播放時,調(diào)用<播放列表管理>模塊,讓用戶選擇需要播放的列表。
(3)<文件瀏覽器>模塊。用于瀏覽內(nèi)存卡上的文件。如果路徑是文件夾,則列出該文件央下的所有文件;如果路徑是文件,則先檢查文件擴展名是否為支持的視頻格式,如果是,則調(diào)用系統(tǒng)內(nèi)置的播放器播放。
(4)<音頻播放>模塊。它包括以下幾個模塊:
?、?播放列表管理>模塊。主要功能是添加、刪除、重命名列表。通過Content providers訪問系統(tǒng)的播放列表數(shù)據(jù)庫,并利用修改的結(jié)果更新數(shù)據(jù)庫。因為采用的是系統(tǒng)的數(shù)據(jù)庫,所以與系統(tǒng)內(nèi)置的音樂播放器列表共用。同時,它還提供添加列表內(nèi)容的接口。通過播放列表管理模塊進入到<播放列表內(nèi)容管理>模塊。
?、?播放列表內(nèi)容管理>模塊。主要功能是添加、刪除、多選播放列表中的歌曲。在Android中,每個列表都會有一個相應(yīng)的歹盯表內(nèi)容庫,保存了該列表里面所包含的歌曲ID。通過ContentProviders可以訪問并修改。其中,添加功能是基于文件瀏覽器實現(xiàn)的,在文件瀏覽器中可以對音樂文件的進行標記和添加。
?、?正在播放>模塊。主要功能是顯示歌曲的相關(guān)信息(專輯封面、專輯名稱、歌手、長度等)和顯示正在播放歌曲的時間進度,控制歌曲的播放。
<正在播放>模塊的界面用XML配置生成。
實際使用的效果圖如圖2所示。
?
在Android的音樂庫已經(jīng)將歌曲的Idv2或Idv3標簽進行解析,并將歌曲的相關(guān)信息(包括演唱者、流派、時長等)保存在媒體數(shù)據(jù)庫中。只需要通過Content providers對該數(shù)據(jù)庫進行訪問,就可以得到相關(guān)的信息并送顯示。獲取歌曲相關(guān)信息的程序源碼如下:
通過創(chuàng)建MediaPlayer播放器類對象,調(diào)用Android提供的API就可以實現(xiàn)文件的解碼和播放。
?、?歌詞同步顯示>模塊。程序啟動時,對內(nèi)存卡進行掃描,將掃描到的歌詞文件名字和路徑保存到歌詞數(shù)據(jù)庫中。對正在播放的歌曲,根據(jù)歌曲名字自動檢索歌詞文件,并同步顯示歌詞。第一次啟動該程序時,需要新建歌詞數(shù)據(jù)庫,用于保存歌詞文件信息。Android提供了類SQLiteOpenHelper用于新建數(shù)據(jù)庫。
DATABASE_CREATE是一個SQL原語的字符串宏,其內(nèi)容是“create table lyric_meta(_id integerprimary key autoincrement,_disp-alay_name text not null,_date text not null);”表示創(chuàng)建一個歌詞文件的表,包含_id,_display_name,_data三列。其中_id是自增的且惟一的整數(shù),_display_name是歌詞文件名稱,_data是歌詞文件路徑。歌詞顯示效果如圖3所示。
?
4 系統(tǒng)測試
首先在Android SDK1.6的模擬器上對影音播放器的各項功能進行調(diào)試。調(diào)試結(jié)束后,將編譯生成的安裝文件(.APK)拷貝到SD卡,利用Android文件管理器將播放軟件安裝到OMAP3530開發(fā)板的系統(tǒng)上,然后將測試用的視頻文件、MP3音樂文件及對應(yīng)的歌詞文件(.lrc)拷貝到SD卡,OMAP3530開發(fā)板上的影音播放器可以通過文件瀏覽器選擇視頻文件并正常播放,在播放音頻文件時可以正常顯示匹配的歌詞,支持快進、快退、暫停等控制功能。
5 結(jié)語
本文以Android上影音播放器的開發(fā)為范例,詳細給出了Android上應(yīng)用的開發(fā)方法。開發(fā)的影音播放器在Android手機模擬器和OMAP35 30開發(fā)板上測試通過。
評論
查看更多