版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
精品文檔-下載后可編輯基于Android的多媒體應(yīng)用開發(fā)與研究-設(shè)計應(yīng)用摘要:首先介紹并分析Android系統(tǒng)的層次架構(gòu),并在此基礎(chǔ)上介紹Android應(yīng)用程序開發(fā)的相關(guān)技術(shù)和基本的開發(fā)流程。接下來介紹Android提供的多媒體開發(fā)組件。用具體的應(yīng)用程序播放器簡要說明Android多媒體應(yīng)用程序的開發(fā)方法。
0引言
2022年11月由Google牽頭,有30多家移動技術(shù)和無線應(yīng)用領(lǐng)域企業(yè)組成的開放手機(jī)聯(lián)盟(OpenHandsetAlliance)發(fā)布了其智能手機(jī)平臺Android.Android是一個開放、自由的移動終端平臺,它是由操作系統(tǒng)、中間件、用戶界面、應(yīng)用軟件組成,同時其開放性保證該平臺不存在任何阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙。開發(fā)人員在該平臺開發(fā)的應(yīng)用程序是使用Java語言編寫的,在Dalvik虛擬機(jī)上運(yùn)行的。Android的底層是以開放性的LinuxKernel為其架構(gòu),也可以理解為Google推出的手機(jī)操作系統(tǒng)和相關(guān)軟件的總稱[1].
Android是一套真正意義上的開放性移動設(shè)備綜合平臺,它包括操作系統(tǒng)、中間件和一些關(guān)鍵的平臺應(yīng)用。Android特點(diǎn)在于它是一個開放的體系架構(gòu),具有非常好的開發(fā)和調(diào)試環(huán)境,而且還支持各種可擴(kuò)展的用戶體驗(yàn),Android里面具有非常豐富的圖形系統(tǒng)、對多媒體的支持功能和非常強(qiáng)大的瀏覽器[2].
Android平臺的開放性等特點(diǎn)既能促進(jìn)技術(shù)(包括平臺自身)的創(chuàng)新,又有助于降低開發(fā)成本,還可以使運(yùn)營商能非常方便地制定特色化的產(chǎn)品,因此,它具有很大的市場發(fā)展?jié)摿Α?/p>
1Android軟件平臺的構(gòu)成
Android軟件平臺主要由5部分構(gòu)成,它們分別是:關(guān)鍵應(yīng)用程序、應(yīng)用程序框架和組件、C/C++函數(shù)庫、Java程序運(yùn)行環(huán)境、優(yōu)化了的Linux內(nèi)核。
(1)關(guān)鍵應(yīng)用程序。
Android本身會附帶一些的應(yīng)用程序,包括E-mail客戶端、短信程序、日歷、地圖、瀏覽器、通訊錄等,目前所有的應(yīng)用程序都是用Java語言開發(fā)的。
更多有特色的Android應(yīng)用程序還有待于廣大開發(fā)者共同參與開發(fā)。
(2)應(yīng)用程序框架及組件。
Android應(yīng)用程序開發(fā)基于框架和組件。Android本身已在其框架中提供了許多組件供應(yīng)用程序調(diào)用,開發(fā)者也可在開發(fā)應(yīng)用程序時順帶開發(fā)新的組件,并將該組件放入應(yīng)用程序框架中,以供自己和其它應(yīng)用程序調(diào)用。
(3)Android運(yùn)行時庫和其它庫層。
Android應(yīng)用程序框架之下是一套C/C++函數(shù)庫,它們服務(wù)于Android應(yīng)用程序組件,其功能通過組件間接提供給開發(fā)者。這些函數(shù)庫包括:標(biāo)準(zhǔn)C函數(shù)庫、多媒體庫、瀏覽器引擎(集成了Web瀏覽器和Internet安全的SSL和WebKit)、2D、3D圖形庫及SQLite引擎和外觀管理器等。這一層也提供了程序運(yùn)行的環(huán)境。Android的Java程序運(yùn)行環(huán)境包含一組Java函數(shù)庫及Dalvik虛擬機(jī),它們有效地優(yōu)化了Java程序的運(yùn)行過程。
(4)Linux內(nèi)核。
Android系統(tǒng)平臺基于優(yōu)化了的Linux內(nèi)核,它提供諸如硬件驅(qū)動程序(USB、藍(lán)牙、顯示屏等)、內(nèi)存管理、進(jìn)程管理、電源管理等服務(wù),同時也是手機(jī)軟、硬件的連接層。
2Android程序開發(fā)的基本組件
Android有如下幾大基本組件:Activity、Service、ContentProvider和BroadcastReceiver。
Activity是Android基本的應(yīng)用程序組件。任何一個Android應(yīng)用程序都可以看作一組任務(wù),這里每一個任務(wù)就可以稱作一個Activity.在應(yīng)用程序中,一個Activity通常就是一個單獨(dú)的屏幕,用于呈現(xiàn)數(shù)據(jù)和與用戶進(jìn)行交互,每個屏幕可以有一個或多個組件布局。
而每一個活動又是一個單獨(dú)的類,每一個這樣的類都要將Activity作為父類。一個Activity可以切換到新的Activity,也可以返回前一個Activity.Android通過使用Intent類來實(shí)現(xiàn)Activity的切換。例如,一個簡單的游戲程序可以分為5個Activity:啟動畫面、主菜單界面、游戲主界面、高分辨和幫助界面。
Service,即"服務(wù)"的意思,相當(dāng)于沒有界面的Activity.應(yīng)用程序的Service可以不需要用戶直接參與而長時間運(yùn)行。典型的例子就是音樂播放器。在一個音樂播放器程序中有多個Activity,它們分別實(shí)現(xiàn)了歌曲的選擇和播放等功能。然而,音樂重放這個功能并沒有對應(yīng)的Activity,它通過Service來實(shí)現(xiàn)。
音樂播放器程序啟動一個Service,它可以在后臺保持音樂的不斷播放。應(yīng)用程序還可以連接到一個Service.當(dāng)Service啟動后,還可以借助Service提供的接口與它進(jìn)行通信。
Android應(yīng)用程序可以使用文件、SQL數(shù)據(jù)庫等各種存儲系統(tǒng)來保存數(shù)據(jù)。但是,如果想實(shí)現(xiàn)不同應(yīng)用之間的數(shù)據(jù)共享,就需要用到ContentProvider.
ContentProvider提供了一套標(biāo)準(zhǔn)的訪問接口,以方便其他應(yīng)用程序?qū)?shù)據(jù)進(jìn)行訪問、操作。
在實(shí)際應(yīng)用中,常常需要等待系統(tǒng)或者其它應(yīng)用發(fā)出一道指令。在Android中,充分考慮了這類需求,于是就有了BroadcastReceiver這樣的一個組件。
每個BroadcastReceiver都可以接收一種或若干種Intent作為觸發(fā)事件,當(dāng)一個BroadcastReceiver被觸發(fā)后,系統(tǒng)就會通知相應(yīng)的程序。
3Android多媒體API及開發(fā)方法
多媒體無論是圖像、視頻還是聲音,都早已成為了移動設(shè)備受到廣泛歡迎的主要原因。而今,手機(jī)設(shè)備很少會沒有攝像頭的,而且隨著技術(shù)的日益更新,越來越多的設(shè)備會擁有更為的視頻性能。用戶經(jīng)常使用手機(jī)來拍攝和瀏覽照片,錄制聲音和觀看視頻。
3.1Android提供的多媒體開發(fā)框架
Android軟件開發(fā)包提供了一系列的方法來處理音視頻媒體,包括對于多種媒體類型和格式的支持。
單獨(dú)的Android設(shè)備和開發(fā)人員可以擴(kuò)展其支持的媒體格式列表。
OpenCore是Android多媒體開發(fā)的,所有Android平臺的音頻、視頻的采集以及播放等操作都是通過它來實(shí)現(xiàn)的。程序員可以通過OpenCore方便快速地開發(fā)出想要的多媒體應(yīng)用程序,例如:錄音、播放、回放、視頻會議等。OpenCore和框架圖如圖1所示。
圖1OpenCore框架圖
由圖1可以看出,OpenCore支持的格式有MPEG4、H.263、MP3、AAC、JPG等。OpenCore多媒體框架有一套通用可擴(kuò)展的接口,針對第三方的多媒體編解碼器,輸入、輸出設(shè)備等。
3.2OpenCore的主要多媒體類與接口
OpenCore主要提供了如下幾個多媒體類:
(1)MediaPlayer類可以用于播放音頻、視頻和流媒體,它包含了Audio和Video的播放功能,在Android的界面上,音頻和視頻的播放都是調(diào)用Media-Player實(shí)現(xiàn)的。它可以獲得媒體文件和各種屬性和當(dāng)前的播放狀態(tài),并可以開始和停止文件的播放。
(2)MediaRecorder類用來進(jìn)行媒體采樣,包括音頻和視頻。MediaRecorder作為狀態(tài)機(jī)運(yùn)行,需要設(shè)置不同的參數(shù),如源格式和源設(shè)備。設(shè)置后可執(zhí)行任意長度的錄制,直到用戶停止。
(3)VideoView類主要用來顯示一個視頻文件,它是SurfaceView類的一個子類,且實(shí)現(xiàn)了MediaPlayerControl接口。
(4)Camera類用來處理系統(tǒng)中與相機(jī)相關(guān)的事件,Camera是一個專門用來連接和斷開相機(jī)服務(wù)的類。
OpenCore在使用過程中的調(diào)用關(guān)系如圖2所示。
圖2使用OpenCore的調(diào)用關(guān)系圖
4示例程序:播放器
4.1布局設(shè)計
Android是通過布局(Layout)來定義UI(用戶界面)的。一般視圖(View)可以直接在布局的XML里聲明。XML文件如下所示:
?xmlversion=″1.0″encoding=″utf-8?″
-AbsoluteLayout
xmlns:android=″/apk/res/android″
android:orientation=″vertical″
android:layout_width=″fill_parent″
android:layout_height=″fill_parent″
ListView
android:id=″@id/android:list″
android:layout_width=″fill_parent″
android:layout_height=″fill_parent″
android:layout_weight=″1″
android:drawSelectorOnTop=″false″/
ImageButton
android:id=″@+id/LastImageButton″
android:layout_width=″wrap_content″
android:layout_height=″wrap_content″
android:layout_x=″10px″
android:layout_y=″170px″
android:src=″@drawable/last″/
(以下4個BUTTON同上,橫坐標(biāo)有變化。)
/AbsoluteLayout
這個簡單的播放器只有一個界面,可以顯示播放列表和對音樂的播放進(jìn)行各種操作。
4.2程序框架設(shè)計
在這的Activity類的界面生成消息響應(yīng)方法中,先定義幾個操作按鈕,然后就要創(chuàng)建整個程序的主對象mMediaPlayer了。語句如下:
publicMediaPlayermMediaPlayer=null;
這是一個MediaPlayer類型的對象,它的功能前面已經(jīng)介紹過了,這里不再贅述。之后要創(chuàng)建的就是其它的組件,包括播放列表、歌曲的路徑以及索引了。
privateListStringmMusicList=newArrayListString();//播放列表
privateintcurrentListItme=0;//索引
privatestaticfinalStringMUSIC_PATH=newString(″/sdcard/″);//歌曲的路徑
4.3程序代碼
接下來設(shè)置這些ImageButton的事件監(jiān)聽。
mStartImageButton.setOnClickListener(
newImageButton.OnClickListener()
{
@OverridepublicvoidonClick(Viewv)
{
playMusic(MUSIC_PATH+mMusi-cList.get(currentListItme)
);
}
});
這是"開始播放"按鈕的事件監(jiān)聽。這里是調(diào)用了一個playMusic()方法來實(shí)現(xiàn)音樂文件的播放的。
在playMusic()方法中,先調(diào)用mMediaPlayer的reset()方法,重置MediaPlayer到它的正常狀態(tài)。然后調(diào)用setDataSource(string)方法設(shè)置好音樂文件的數(shù)據(jù)源,再連續(xù)調(diào)用prepare()和start()方法,MediaPlayer將開始播放音樂文件。
接下來,要設(shè)置一個OnCompletionListener(setOnCompletionListener(newOnCompletionListener)),在歌曲結(jié)束的時候,onCompletion(MediaPlayer)會被調(diào)用,這樣就可以設(shè)置為自動播放下一曲目。代碼如下。
mMedia
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度廁所環(huán)保材料生產(chǎn)與銷售合同2篇
- 2025年度輪胎行業(yè)新能源汽車配套服務(wù)合同4篇
- 2025年度海洋工程裝備采購及租賃服務(wù)合同2篇
- 2025年度教育培訓(xùn)機(jī)構(gòu)場地租賃及課程研發(fā)服務(wù)合同3篇
- 2024物業(yè)公司環(huán)保措施合同
- 2025年度林地林木資源調(diào)查與監(jiān)測合同3篇
- 二零二五年房地產(chǎn)面積測繪與銷售備案合同范本3篇
- 2025年度二零二五年度奇幻馬戲團(tuán)國際巡演合作合同4篇
- 2025年度餐飲廚師個人技能保密及競業(yè)限制合同3篇
- 二零二五版船舶建造質(zhì)量檢測與驗(yàn)收合同3篇
- 拆遷評估機(jī)構(gòu)選定方案
- 床旁超聲監(jiān)測胃殘余量
- 上海市松江區(qū)市級名校2025屆數(shù)學(xué)高一上期末達(dá)標(biāo)檢測試題含解析
- 綜合實(shí)踐活動教案三上
- 《新能源汽車電氣設(shè)備構(gòu)造與維修》項(xiàng)目三 新能源汽車照明與信號系統(tǒng)檢修
- 2024年新課標(biāo)《義務(wù)教育數(shù)學(xué)課程標(biāo)準(zhǔn)》測試題(附含答案)
- 醫(yī)院培訓(xùn)課件:《靜脈中等長度導(dǎo)管臨床應(yīng)用專家共識》
- 趣味知識問答100道
- 中國國際大學(xué)生創(chuàng)新大賽與“挑戰(zhàn)杯”大學(xué)生創(chuàng)業(yè)計劃競賽(第十一章)大學(xué)生創(chuàng)新創(chuàng)業(yè)教程
- 鋼管豎向承載力表
- 2024年新北師大版八年級上冊物理全冊教學(xué)課件(新版教材)
評論
0/150
提交評論