新聞中心

        EEPW首頁 > 模擬技術 > 設計應用 > 基于Android系統的影音播放器設計

        基于Android系統的影音播放器設計

        作者: 時間:2011-04-24 來源:網絡 收藏
        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模擬器和Eclipse的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)Service

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

          (3)Intent

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

          (4)Content providers

          Android平臺內置了一套SQLite數據儲存機制,并包含一系列管理SQLite Database的相關方法。在應用程序中,可以通過Content prov-iders訪問數據庫。每個Content provider都定義了一系列的方法用于訪問它對應的數據庫。應用程序在新建數據庫時也可以定義相應的Con-tent provider用于向其他應用程序共享數據。一般情況下,應用程序不直接調用Content provider定義的函數,而是通過ContentResolver間接調用。這樣設計的好處是一個ContentResolver可以訪問任何的Content provider,統一了接口。

          2 硬件平臺

          系統的硬件平臺采用基于OMAP3530的開發板DevKit8000。美國TI公司的OMAP3530應用處理器集成了600 MHz的ARM Cortex-A8 CPU內核和430 MHz的C64x+DSP內核,并提供了USB 2.OOTG,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通過Intent進行通信和相互調用。

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

          

        各個模塊之間的關系

          視頻播放調用順序依次是啟動畫面>、主菜單>、文件瀏覽器>、視頻播放器>;

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

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

          

        對應啟動畫面的描述

          3.3 軟件模塊

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

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

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

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

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

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

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

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

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

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

          實際使用的效果圖如圖2所示。

          

        實際使用的效果圖

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

         


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 环江| 巴林右旗| 嘉义县| 常熟市| 景泰县| 永仁县| 长岭县| 莆田市| 永德县| 弥渡县| 文安县| 旅游| 彭水| 宁强县| 保亭| 越西县| 陆丰市| 政和县| 闻喜县| 新化县| 绥中县| 隆化县| 泽库县| 萨迦县| 龙泉市| 改则县| 孟津县| 康马县| 丰镇市| 蓬溪县| 北安市| 荥阳市| 皮山县| 长宁区| 化州市| 阆中市| 西畴县| 腾冲县| 贺兰县| 边坝县| 天水市|