《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于Android系統的影音播放器開發設計
基于Android系統的影音播放器開發設計
摘要: 基于開源移動終端操作系統Android開發了一個影音播放器 影音播放器由文件測覽器、視頻播放、音頻播放、播放列表管理及歌詞同步顯示等模塊組成,界面采用XML腳本配置生成。軟件基于文件瀏覽器的方式實現了媒體庫的管理,大大方便了用戶的操作 軟件每次啟動時都會對儲存設備進行掃描,將掃描到的歌詞文件信息保存到歌詞數據庫中。對正在播放的歌曲,根據歌曲名字檢索歌詞文件,并同步顯示歌詞。在Android模擬器和0MAP 3530開發板上對播放器進行了功能測試與驗證。
Abstract:
Key words :

  0 引 言

 

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

  隨著科技的不斷發展,手機不再只是人們日常生活的移動通信工具,而是一個多媒體平臺,可提供強大的多媒體功能,越來越多的人喜歡用手機聽音樂、看電影。

  Android系統內置的音樂播放器基于媒體庫對歌曲進行管理,并且不支持歌詞的同步顯示。對于部分已經習慣的基于文件瀏覽器形式播放器的用戶,操作起來會有所不便。對于Android手機操作系統,可以充分利用它豐富的可編程擴展性,開發出新的播放器應用軟件。

 

  1 Android平臺

 

  Android軟件開發主要涉及到的相關技術包括Android SDK(開發插件、調試工具包等)、Android系統架構和Android應用程序組件。

  1.1 Android SDK

  Android SDK(Software Development Kit)提供了Android平臺上使用Java語言進行Android應用開發的API接口和工具。其中,最重要的工具是Android模擬器和Eclipsel2 的Android開發工具插件,同時SDK也包含了各種在模擬器上用于調試、打包和安裝的工具。

  Eclipse IDE的Android開發工具插件(AndroidDevelopment Tools Plugin for the Eclipse IDE,ADT)大大擴展了Eclipse集成環境功能,使得生成和調試Android應用程序既容易又迅速。使用Eclipse,ADT插件可以加快開發Android應用程序的速度。

  Android模擬器是在計算機上運行的一個虛擬移動設備,可以使用模擬器來模擬一個實際的Android運行環境,來設計、調試和測試應用程序。

  Dalvik調試監視器服務(Dalvik Debug MONitorService,DDMS)集成了Dalvik(為Android平臺定制的虛擬機(VM)),能夠在模擬器或者設備上管理進程并協助調試。DDMS提供進程管理,產生跟蹤數據,觀察堆和線程信息,截取模擬器屏幕畫面,模擬來電或短信等功能。

  1.2 Android系統架構

  Android是一個專門針對移動設備的軟件集,它包括一個操作系統,中間件和一些重要的應用程序 ]。

  Android的系統架構從上往下依次是應用程序、應用程序框架和組件、Android運行時庫和其他庫、優化的Linux內核[ 。

  1.3 Android應用程序的組件

  手機的運行環境比較復雜,一個程序運行時經常會出現很多的突發情況,例如,來電或者短信及電量不足等。這些問題在Android中都有解決方案,在Android的應用程序中,以下幾個組件特別重要:

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

  (2)ServiceService與Activity的主要區別在于,Service是在后臺活動的,它沒有用戶界面 ]。典型的應用場景是,用戶選擇了一個播放列表開始播放后,離開了該用戶界面(Activity),如果仍然希望歌曲不會暫停,就可以用Service去調用播放器,而不是在Activity中調用播放器。

  (3)Intent在Android中,每一個行為都可以抽象為一個Intent。可以簡單地把Intent理解為一個包含了數據的消息。Intent可以用于啟動一個Activity或者Service,可以用于進程間的通信。事實上,應用程序的啟動也是通過Intent實現的。

  (4)Content providersAndroid平臺內置了一套SQLite數據儲存機制,并包含一系列管理SQLite Database的相關方法_7]。

  在應用程序中,可以通過Content providers訪問數據庫。每個Content provider都定義了一系列的方法用于訪問它對應的數據庫。應用程序在新建數據庫時也可以定義相應的Content provider用于向其他應用程序共享數據。一般情況下,應用程序不直接調用Con—tent provider定義的函數,而是通過ContentResolve間接調用。這樣設計的好處是一個ContentResolver可以訪問任何的Content provider,統一了接口。

 

  2 硬件平臺

 

  系統的硬件平臺采用基于OMAP3530的開發板DevKit8000。美國TI公司的OMAP3530應用處理器_8 集成了600 MHz的ARM Cortex-A8 CPU 內核和430 MHz的C64x+ DSP內核,并提供了USB 2.0OTG,SD/MMC和LCD等豐富的外設接口,適用于各種無線手持終端應用。DevKit8000開發板外接了一個4.3寸的LCD屏、電阻式觸摸屏和音頻輸入/輸出接口,可以用于對基于Android系統的影音播放器的開發。

  通過打補丁包和開發LCD驅動、觸摸屏驅動、按鍵驅動等外設驅動,在DevKit8000開發板上移植了版本為6.2.29的Linux內核和版本為1.6的Android系統。

 

  3 Android影音播放器軟件開發

 

  3.1 軟件功能

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

  (1)播放視頻支持快進、快退、暫停、繼續和進度拖拽。

  (2)播放音頻支持快進、快退、上一首、下一首、暫停、繼續、停止和進度拖拽;支持隨機播放、循環播放兩種模式;支持歌詞同步顯示。

  3.2 各模塊之間的關系

  影音播放軟件工程文件主要包括src文件夾(Java源碼)、res文件夾(資源文件)和AndroidManifeST.xml(程序清單)。軟件主要由8個Activities組成,每個Activity對應于一個模塊。不同的Activities通過In—tent進行通信和相互調用。

  各個模塊之間的關系如圖1所示。

 

  各個模塊之間關系

 

  視頻播放調用順序依次是<啟動畫面>、< 主菜單>、<文件瀏覽器>、<視頻播放器>;音頻播放調用順序依次是<啟動畫面>、< 主菜單>、<播放列表管理> 、<播放列表內容管理> 、<正在播放> 。在<正在播放>的界面上,點擊相應的按鈕就可以執行歌詞同步顯示功能。

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

 

  

 

  3.3 軟件模塊

  根據影音播放軟件功能,可以將軟件劃分為以下幾個模塊:

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

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

  主菜單提供三個選項,分別是視頻播放、音頻播放和退出程序;視頻播放時,調用<文件瀏覽器>模塊,讓用戶選擇需要播放的視頻文件。音頻播放時,調用<播放列表管理>模塊,讓用戶選擇需要播放的列表。

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

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

  ① <播放列表管理>模塊。主要功能是添加、刪除、重命名列表。通過Content providers訪問系統的播放列表數據庫,并利用修改的結果更新數據庫。因為采用的是系統的數據庫,所以與系統內置的音樂播放器列表共用。同時,它還提供添加列表內容的接口。通過播放列表管理模塊進入到<播放列表內容管理>模塊。

  ② <播放列表內容管理>模塊。主要功能是添加、刪除、多選播放列表中的歌曲。在Android中,每個列表都會有一個相應的列表內容庫,保存了該列表里面所包含的歌曲ID。通過Content Providers可以訪問并修改。其中,添加功能是基于文件瀏覽器實現的,在文件瀏覽器中可以對音樂文件的進行標記和添加。

  ③ <正在播放>模塊。主要功能是顯示歌曲的相關信息(專輯封面、專輯名稱、歌手、長度等)和顯示正在播放歌曲的時間進度,控制歌曲的播放。

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

  

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

  

  

  通過創建MediaPlayer播放器類對象,調用An—droid提供的API就可以實現文件的解碼和播放。

  ④ <歌詞同步顯示>模塊。程序啟動時,對內存卡進行掃描,將掃描到的歌詞文件名字和路徑保存到歌詞數據庫中。對正在播放的歌曲,根據歌曲名字自動檢索歌詞文件,并同步顯示歌詞。第一次啟動該程序時,需要新建歌詞數據庫,用于保存歌詞文件信息。An—droid提供了類SQLiteOpenHelper用于新建數據庫。

  DATABASE— CREATE是一個SQL原語的字符串宏,其內容是“create table lyric—meta(一id integerprimary key autoincrement,一display— nam e text notnull,一data text not nul1);”表示創建一個歌詞文件的表,包含一id,一display_name,一data三列。其中jd是自增的且惟一的整數,一display—nAME是歌詞文件名稱,一data是歌詞文件路徑。

 

  4 系統測試

 

  首先在Android SDK 1.6的模擬器上對影音播放器的各項功能進行調試和測試。調試結束后,將編譯生成的安裝文件(.APK)拷貝到SD卡,利用Android文件管理器將播放器軟件安裝到OMAP3530開發板的系統上,然后將測試用的視頻文件、MP3音樂文件及對應的歌詞文件(.1rc)拷貝到SD卡,0MAP3530開發板上的影音播放器可以通過文件瀏覽器選擇音視頻文件并正常播放,在播放音頻文件時可以正常顯示匹配的歌詞,支持快進、快退、暫停等控制功能。

 

  5 結 語

 

  本文以Android上影音播放器的開發為范例,詳細給出了Android上應用的開發方法。開發的影音播放器在Android手機模擬器和OMAP3530開發板上測試通過。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
久久国产日韩| 亚洲欧美制服中文字幕| 欧美日韩在线一区| 中文网丁香综合网| 一本久久知道综合久久| 国产精品久久久久久久午夜片 | 亚洲精品久久久久久久久久久久| 亚洲国产另类 国产精品国产免费| 欧美黑人国产人伦爽爽爽| 亚洲最新色图| 午夜视频久久久久久| 亚洲大胆人体视频| 国产精品99免视看9| 久久久999精品视频| 亚洲全黄一级网站| 亚洲一区在线免费观看| 激情久久综艺| 欧美视频免费在线| 久久久久久久999| 99精品国产99久久久久久福利| 亚洲高清在线观看一区| 99精品国产高清一区二区| 国产日韩精品在线观看| 欧美多人爱爱视频网站| 亚洲欧美日韩一区二区三区在线观看 | 国产午夜精品视频| 欧美激情bt| 欧美精品aa| 久久精品亚洲一区二区| 久久久99久久精品女同性| 久久午夜精品| 欧美精品一区二区三区蜜桃 | 日韩一区二区免费高清| 亚洲第一福利在线观看| 在线精品国产成人综合| 欧美视频在线观看一区二区| 欧美日韩www| 老司机一区二区三区| 亚洲欧美美女| 日韩午夜高潮| 亚洲永久免费精品| 一区二区免费看| 亚洲电影免费观看高清完整版| 久久精品国产亚洲aⅴ| 亚洲一二三四区| 亚洲三级电影在线观看| 国产专区一区| 国产裸体写真av一区二区 | 欧美国产视频一区二区| 欧美日韩综合在线| 国产欧美在线视频| 亚洲国产精品视频一区| 亚洲色诱最新| 亚洲精品国产精品国自产观看 | 亚洲综合欧美日韩| 久久久久久尹人网香蕉| 欧美精品大片| 国产精品一香蕉国产线看观看| 精东粉嫩av免费一区二区三区| 亚洲人成在线播放| 亚洲大胆av| 中文日韩在线视频| 亚洲国产aⅴ天堂久久| 亚洲午夜精品一区二区| 一区二区三区免费观看| 欧美亚洲免费高清在线观看| 亚洲一区成人| 久久―日本道色综合久久| 欧美日韩精品久久| 欧美日本在线一区| 国产日韩综合| 亚洲精品中文字幕在线观看| 亚洲国产综合在线| 91久久国产精品91久久性色| 亚洲午夜免费视频| 91久久精品日日躁夜夜躁欧美| 亚洲天堂成人在线观看| 久久另类ts人妖一区二区| 欧美日韩中文另类| 尹人成人综合网| 亚洲午夜视频在线观看| 亚洲人精品午夜在线观看| 欧美一区二区三区在线视频 | 亚洲另类在线一区| 久久福利一区| 亚洲高清毛片| 亚洲欧美日韩中文在线制服| 欧美成人在线免费视频| 国产精品天美传媒入口| 国产欧美一区二区精品仙草咪| 亚洲激情图片小说视频| 欧美在线观看天堂一区二区三区 | 欧美在线观看一二区| 亚洲一级特黄| 欧美精品一区二区三区久久久竹菊| 国产亚洲美州欧州综合国| 国产视频一区三区| 一本色道久久综合| 日韩一区二区精品视频| 蜜乳av另类精品一区二区| 欧美国产综合视频| 国产日韩欧美亚洲一区| 亚洲视频成人| 一区二区三区日韩欧美| 欧美成人a∨高清免费观看| 国产视频一区欧美| 午夜欧美不卡精品aaaaa| 亚洲一区二区三区乱码aⅴ| 欧美日韩高清免费| 亚洲精品国产精品国自产观看浪潮 | 韩国一区二区三区美女美女秀| 黄色精品一区| 欧美伊人久久| 久久aⅴ国产欧美74aaa| 久久亚洲国产精品日日av夜夜| 国产精品视频导航| 亚洲私人影院| 亚洲欧美成人网| 国产精品久久97| 一区二区三区国产精品| 欧美在线观看你懂的| 久久国产精品亚洲va麻豆| 国产精品日韩电影| 亚洲欧美制服另类日韩| 欧美伊久线香蕉线新在线| 国产精品捆绑调教| 在线日韩av| 91久久久在线| 欧美激情亚洲国产| 亚洲精品女av网站| 中日韩在线视频| 国产精品久久久久77777| 亚洲视频自拍偷拍| 午夜亚洲性色福利视频| 国产精品伊人日日| 欧美一级午夜免费电影| 99亚洲伊人久久精品影院红桃| 欧美刺激性大交免费视频| 亚洲电影免费观看高清完整版在线 | 欧美亚洲不卡| 亚洲尤物在线视频观看| 欧美一区二区女人| 国产一区99| 亚洲日本精品国产第一区| 欧美欧美天天天天操| aⅴ色国产欧美| 欧美一区二区免费| 尤妮丝一区二区裸体视频| 亚洲精品一区二区网址| 久久av一区二区三区漫画| 国产小视频国产精品| 久久国产高清| 女主播福利一区| 国产日本欧美一区二区三区在线| 亚洲欧美日韩一区二区| 中文在线资源观看视频网站免费不卡| 欧美色精品天天在线观看视频 | 欧美日韩精品久久久| 亚洲午夜久久久久久尤物 | 亚洲一区亚洲二区| 狂野欧美一区| 亚洲美女诱惑| 欧美一区二区三区在线看| 永久91嫩草亚洲精品人人| 夜夜爽99久久国产综合精品女不卡| 欧美三级韩国三级日本三斤| 亚洲欧美久久久久一区二区三区| 久久久噜噜噜久久狠狠50岁| 亚洲人成绝费网站色www| 亚洲欧美激情在线视频| 好看不卡的中文字幕| 一本色道久久综合亚洲精品按摩 | 香蕉久久精品日日躁夜夜躁| 亚洲人成人一区二区在线观看| 亚洲无限av看| 性色av一区二区三区| 久久综合色播五月| 日韩视频一区二区在线观看| 午夜欧美精品| 亚洲二区在线视频| 午夜国产不卡在线观看视频| 久久免费高清视频| 亚洲视频在线看| 国产欧美日韩在线观看| 亚洲人成在线播放网站岛国| 国产精品久久久久久亚洲毛片| 欧美xx69| 亚洲一区二区三区四区视频| 欧美一区影院| 亚洲日本成人| 久久精品国产在热久久| 91久久精品日日躁夜夜躁国产| 欧美一级播放| 亚洲精品欧美一区二区三区| 久久久久.com| 亚洲综合视频1区| 欧美日韩在线亚洲一区蜜芽| 亚洲狠狠婷婷| 亚洲欧美日韩一区二区在线 | 久久精品国产一区二区三|