国产91免费_国产精品电影一区_日本s色大片在线观看_中文在线免费看视频

您現(xiàn)在的位置: 通信界 >> 視頻通信 >> 技術(shù)正文  
 
基于A(yíng)ndroid系統(tǒng)的影音播放器開(kāi)發(fā)[圖]
[ 通信界 / 佚名 / www.6611o.com / 2012/7/5 21:25:21 ]
 

摘要:基于開(kāi)源移動(dòng)終端操作系統(tǒng)Android開(kāi)發(fā)了一個(gè)影音播放器。影音播放器由文件瀏覽器、視頻播放、音頻播放、播放列表管理及歌詞同步顯示等模塊組成,界面采用XML腳本配置生成。軟件基于文件瀏覽器的方式實(shí)現(xiàn)了媒體庫(kù)的管理,大大方便了用戶(hù)的操作。軟件每次啟動(dòng)時(shí)都會(huì)對(duì)儲(chǔ)存設(shè)備進(jìn)行掃描,將掃描到的歌詞文件信息保存到歌詞數(shù)據(jù)庫(kù)中。對(duì)正在播放的歌曲,根據(jù)歌曲名字檢索歌詞文件,并同步顯示歌詞。在A(yíng)ndroid模擬器和OMAP 3530開(kāi)發(fā)板上對(duì)播放器進(jìn)行了功能測(cè)試與驗(yàn)證。

0 引言

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

隨著科技的不斷發(fā)展,手機(jī)不再只是人們?nèi)粘I畹?a class="channel_keylink" href="/search.asp">移動(dòng)通信工具,而是一個(gè)多媒體平臺(tái),可提供強(qiáng)大的多媒體功能,越來(lái)越多的人喜歡用手機(jī)聽(tīng)音樂(lè)、看電影。

Android系統(tǒng)內(nèi)置的音樂(lè)播放器基于媒體庫(kù)對(duì)歌曲進(jìn)行管理,并且不支持歌詞的同步顯示。對(duì)于部分已經(jīng)習(xí)慣的基于文件瀏覽器形式播放器的用戶(hù),操作起來(lái)會(huì)有所不便。對(duì)于A(yíng)ndroid手機(jī)操作系統(tǒng),可以充分利用它豐富的可編程擴(kuò)展性,開(kāi)發(fā)出新的播放器應(yīng)用軟件。

1 Android平臺(tái)

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

1.1 Android SDK

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

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

Android模擬器是在計(jì)算機(jī)上運(yùn)行的一個(gè)虛擬移動(dòng)設(shè)備,可以使用模擬器來(lái)模擬一個(gè)實(shí)際的Android運(yùn)行環(huán)境,來(lái)設(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ù),觀(guān)察堆和線(xiàn)程信息,截取模擬器屏幕畫(huà)面,模擬來(lái)電或短信等功能。

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

Android是一個(gè)專(zhuān)門(mén)針對(duì)移動(dòng)設(shè)備的軟件集,它包括一個(gè)操作系統(tǒng),中間件和一些重要的應(yīng)用程序。

Android的系統(tǒng)架構(gòu)從上往下依次是應(yīng)用程序、應(yīng)用程序框架和組件、Android運(yùn)行時(shí)庫(kù)和其他庫(kù)、優(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ā)情況,例如,來(lái)電或者短信及電量不足等。這些問(wèn)題在A(yíng)ndroid中都有解決方案,在A(yíng)ndroid的應(yīng)用程序中,以下幾個(gè)組件特別重要:

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

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

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

(4)Content providersAndroid平臺(tái)內(nèi)置了一套SQLite數(shù)據(jù)儲(chǔ)存機(jī)制,并包含一系列管理SQLite Database的相關(guān)方法_7]。

在應(yīng)用程序中,可以通過(guò)Content providers訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)。每個(gè)Content provider都定義了一系列的方法用于訪(fǎng)問(wèn)它對(duì)應(yīng)的數(shù)據(jù)庫(kù)。應(yīng)用程序在新建數(shù)據(jù)庫(kù)時(shí)也可以定義相應(yīng)的Content provider用于向其他應(yīng)用程序共享數(shù)據(jù)。一般情況下,應(yīng)用程序不直接調(diào)用Con—tent provider定義的函數(shù),而是通過(guò)ContentResolve間接調(diào)用。這樣設(shè)計(jì)的好處是一個(gè)ContentResolver可以訪(fǎng)問(wèn)任何的Content provider,統(tǒng)一了接口。

2 硬件平臺(tái)

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

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

3 Android影音播放器軟件開(kāi)發(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通過(guò)In—tent進(jìn)行通信和相互調(diào)用。

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

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

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

3.3 軟件模塊

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

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

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

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

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

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

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

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

③ <正在播放>模塊。主要功能是顯示歌曲的相關(guān)信息(專(zhuān)輯封面、專(zhuān)輯名稱(chēng)、歌手、長(zhǎng)度等)和顯示正在播放歌曲的時(shí)間進(jìn)度,控制歌曲的播放。

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

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

通過(guò)創(chuàng)建MediaPlayer播放器類(lèi)對(duì)象,調(diào)用An—droid提供的API就可以實(shí)現(xiàn)文件的解碼和播放。

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

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

4 系統(tǒng)測(cè)試

首先在A(yíng)ndroid SDK 1.6的模擬器上對(duì)影音播放器的各項(xiàng)功能進(jìn)行調(diào)試和測(cè)試。調(diào)試結(jié)束后,將編譯生成的安裝文件(.APK)拷貝到SD卡,利用Android文件管理器將播放器軟件安裝到OMAP3530開(kāi)發(fā)板的系統(tǒng)上,然后將測(cè)試用的視頻文件、MP3音樂(lè)文件及對(duì)應(yīng)的歌詞文件(.1rc)拷貝到SD卡,0MAP3530開(kāi)發(fā)板上的影音播放器可以通過(guò)文件瀏覽器選擇音視頻文件并正常播放,在播放音頻文件時(shí)可以正常顯示匹配的歌詞,支持快進(jìn)、快退、暫停等控制功能。

5 結(jié)語(yǔ)

本文以Android上影音播放器的開(kāi)發(fā)為范例,詳細(xì)給出了Android上應(yīng)用的開(kāi)發(fā)方法。開(kāi)發(fā)的影音播放器在A(yíng)ndroid手機(jī)模擬器和OMAP3530開(kāi)發(fā)板上測(cè)試通過(guò)。

 

作者:佚名 合作媒體:不詳 編輯:顧北

 

 

 
 熱點(diǎn)技術(shù)
普通技術(shù) “5G”,真的來(lái)了!牛在哪里?
普通技術(shù) 5G,是偽命題嗎?
普通技術(shù) 云視頻會(huì)議關(guān)鍵技術(shù)淺析
普通技術(shù) 運(yùn)營(yíng)商語(yǔ)音能力開(kāi)放集中管理方案分析
普通技術(shù) 5G網(wǎng)絡(luò)商用需要“無(wú)憂(yōu)”心
普通技術(shù) 面向5G應(yīng)運(yùn)而生的邊緣計(jì)算
普通技術(shù) 簡(jiǎn)析5G時(shí)代四大關(guān)鍵趨勢(shì)
普通技術(shù) 國(guó)家網(wǎng)信辦就《數(shù)據(jù)安全管理辦法》公開(kāi)征求意見(jiàn)
普通技術(shù) 《車(chē)聯(lián)網(wǎng)(智能網(wǎng)聯(lián)汽車(chē))直連通信使用5905-5925MHz頻段管理規(guī)定(
普通技術(shù) 中興通訊混合云解決方案,滿(mǎn)足5G多元業(yè)務(wù)需求
普通技術(shù) 大規(guī)模MIMO將帶來(lái)更多無(wú)線(xiàn)信道,但也使無(wú)線(xiàn)信道易受攻擊
普通技術(shù) 蜂窩車(chē)聯(lián)網(wǎng)的標(biāo)準(zhǔn)及關(guān)鍵技術(shù)及網(wǎng)絡(luò)架構(gòu)的研究
普通技術(shù) 4G與5G融合組網(wǎng)及互操作技術(shù)研究
普通技術(shù) 5G中CU-DU架構(gòu)、設(shè)備實(shí)現(xiàn)及應(yīng)用探討
普通技術(shù) 無(wú)源光網(wǎng)絡(luò)承載5G前傳信號(hào)可行性的研究概述
普通技術(shù) 面向5G中傳和回傳網(wǎng)絡(luò)承載解決方案
普通技術(shù) 數(shù)據(jù)中心布線(xiàn)系統(tǒng)可靠性探討
普通技術(shù) 家庭互聯(lián)網(wǎng)終端價(jià)值研究
普通技術(shù) 鎏信科技CEO劉舟:從連接層構(gòu)建IoT云生態(tài),聚焦CMP是關(guān)鍵
普通技術(shù) SCEF引入需求分析及部署應(yīng)用
  版權(quán)與免責(zé)聲明: ① 凡本網(wǎng)注明“合作媒體:通信界”的所有作品,版權(quán)均屬于通信界,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用。已經(jīng)本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來(lái)源:通信界”。違反上述聲明者,本網(wǎng)將追究其相關(guān)法律責(zé)任。 ② 凡本網(wǎng)注明“合作媒體:XXX(非通信界)”的作品,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé)。 ③ 如因作品內(nèi)容、版權(quán)和其它問(wèn)題需要同本網(wǎng)聯(lián)系的,請(qǐng)?jiān)谝辉聝?nèi)進(jìn)行。
通信視界
華為余承東:Mate30總體銷(xiāo)量將會(huì)超過(guò)兩千萬(wàn)部
趙隨意:媒體融合需積極求變
普通對(duì)話(huà) 苗圩:建設(shè)新一代信息基礎(chǔ)設(shè)施 加快制造業(yè)數(shù)字
普通對(duì)話(huà) 華為余承東:Mate30總體銷(xiāo)量將會(huì)超過(guò)兩千萬(wàn)部
普通對(duì)話(huà) 趙隨意:媒體融合需積極求變
普通對(duì)話(huà) 韋樂(lè)平:5G給光纖、光模塊、WDM光器件帶來(lái)新機(jī)
普通對(duì)話(huà) 安筱鵬:工業(yè)互聯(lián)網(wǎng)——通向知識(shí)分工2.0之路
普通對(duì)話(huà) 庫(kù)克:蘋(píng)果不是壟斷者
普通對(duì)話(huà) 華為何剛:挑戰(zhàn)越大,成就越大
普通對(duì)話(huà) 華為董事長(zhǎng)梁華:盡管遇到外部壓力,5G在商業(yè)
普通對(duì)話(huà) 網(wǎng)易董事局主席丁磊:中國(guó)正在引領(lǐng)全球消費(fèi)趨
普通對(duì)話(huà) 李彥宏:無(wú)人乘用車(chē)時(shí)代即將到來(lái) 智能交通前景
普通對(duì)話(huà) 中國(guó)聯(lián)通研究院院長(zhǎng)張?jiān)朴拢弘p輪驅(qū)動(dòng)下,工業(yè)
普通對(duì)話(huà) “段子手”楊元慶:人工智能金句頻出,他能否
普通對(duì)話(huà) 高通任命克里斯蒂安諾·阿蒙為公司總裁
普通對(duì)話(huà) 保利威視謝曉昉:深耕視頻技術(shù) 助力在線(xiàn)教育
普通對(duì)話(huà) 九州云副總裁李開(kāi):幫助客戶(hù)構(gòu)建自己的云平臺(tái)
通信前瞻
楊元慶:中國(guó)制造高質(zhì)量發(fā)展的未來(lái)是智能制造
對(duì)話(huà)亞信科技CTO歐陽(yáng)曄博士:甘為橋梁,攜"電
普通對(duì)話(huà) 楊元慶:中國(guó)制造高質(zhì)量發(fā)展的未來(lái)是智能制造
普通對(duì)話(huà) 對(duì)話(huà)亞信科技CTO歐陽(yáng)曄博士:甘為橋梁,攜"電
普通對(duì)話(huà) 對(duì)話(huà)倪光南:“中國(guó)芯”突圍要發(fā)揮綜合優(yōu)勢(shì)
普通對(duì)話(huà) 黃宇紅:5G給運(yùn)營(yíng)商帶來(lái)新價(jià)值
普通對(duì)話(huà) 雷軍:小米所有OLED屏幕手機(jī)均已支持息屏顯示
普通對(duì)話(huà) 馬云:我挑戰(zhàn)失敗心服口服,他們才是雙11背后
普通對(duì)話(huà) 2018年大數(shù)據(jù)產(chǎn)業(yè)發(fā)展試點(diǎn)示范項(xiàng)目名單出爐 2
普通對(duì)話(huà) 陳志剛:提速又降費(fèi),中國(guó)移動(dòng)的兩面精彩
普通對(duì)話(huà) 專(zhuān)訪(fǎng)華為終端何剛:第三代nova已成為爭(zhēng)奪全球
普通對(duì)話(huà) 中國(guó)普天陶雄強(qiáng):物聯(lián)網(wǎng)等新經(jīng)濟(jì)是最大機(jī)遇
普通對(duì)話(huà) 人人車(chē)?yán)罱。航衲臧l(fā)力金融 拓展汽車(chē)后市場(chǎng)
普通對(duì)話(huà) 華為萬(wàn)飚:三代出貴族,PC產(chǎn)品已走在正確道路
普通對(duì)話(huà) 共享退潮單車(chē)入冬 智享單車(chē)卻走向盈利
普通對(duì)話(huà) Achronix發(fā)布新品單元塊 推動(dòng)eFPGA升級(jí)
普通對(duì)話(huà) 金柚網(wǎng)COO邱燕:天吳系統(tǒng)2.0真正形成了社保管