李婷婷,孟利民(浙江工業(yè)大學(xué) 浙江省通信網(wǎng)技術(shù)應(yīng)用研究重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310023)
基于Android的手機(jī)多媒體應(yīng)用軟件的設(shè)計(jì)與實(shí)現(xiàn)*
李婷婷,孟利民
(浙江工業(yè)大學(xué)浙江省通信網(wǎng)技術(shù)應(yīng)用研究重點(diǎn)實(shí)驗(yàn)室,浙江杭州310023)
為了實(shí)現(xiàn)基于Android手機(jī)平臺(tái)的音頻會(huì)話和圖像上傳,設(shè)計(jì)了一個(gè)基于Android手機(jī)的多媒體應(yīng)用軟件。首先介紹了Android端的多媒體發(fā)展趨勢,然后介紹了如何設(shè)計(jì)并實(shí)現(xiàn)在手機(jī)端的VOIP以及利用FTP協(xié)議上傳圖像。測試結(jié)果表明,用戶可以通過軟件客戶端與PC客戶端進(jìn)行音頻會(huì)話,并有良好的通話體驗(yàn),登錄FTP服務(wù)器可以查看到通過軟件上傳的圖像。
Android;多媒體應(yīng)用;VOIP;FTP
多媒體技術(shù)[1]是指包括對(duì)文字、圖像、聲音以及視頻等媒體數(shù)據(jù)進(jìn)行處理分析、傳輸以及應(yīng)用的技術(shù)。市場上出現(xiàn)的多種多媒體應(yīng)用不僅可以幫助人們進(jìn)行日常溝通,還有多種功能,包括了視頻監(jiān)控、IP電話[2]以及即時(shí)消息等。Android[3]是一個(gè)開放自由的移動(dòng)終端平臺(tái),以其開源、免費(fèi)等特點(diǎn)吸引了大量開發(fā)研究人員和廠商,并獲得了用戶的喜歡,是目前市場上主流的移動(dòng)設(shè)備。隨著手機(jī)硬件性能的提高和移動(dòng)數(shù)據(jù)網(wǎng)絡(luò)的發(fā)展,Android應(yīng)用程序?qū)碛袕?qiáng)大的多媒體數(shù)據(jù)處理能力,手機(jī)上的多媒體應(yīng)用將會(huì)成為手機(jī)用戶的焦點(diǎn),給人們帶來極大的便利性[4]。
多媒體交互系統(tǒng)主要包括Android手機(jī)客戶端、服務(wù)器端和PC平臺(tái)端。Android手機(jī)客戶端需要實(shí)現(xiàn)音頻的收發(fā),發(fā)送端需要實(shí)現(xiàn)的功能包括音頻的采集、編碼壓縮、RTP打包封裝以及發(fā)送,而接收端需要實(shí)現(xiàn)接收RTP包并且通過解碼來播放音頻。手機(jī)客戶端還需要向服務(wù)器發(fā)送SIP消息來邀請(qǐng)音頻通話,并建立FTP連接來傳送圖片和錄像。FTP服務(wù)器主要負(fù)責(zé)管理圖片和錄像;SIP消息作為整個(gè)系統(tǒng)的控制信令,SIP服務(wù)器負(fù)責(zé)管理登錄以及轉(zhuǎn)發(fā)SIP消息;媒體轉(zhuǎn)發(fā)服務(wù)器負(fù)責(zé)轉(zhuǎn)發(fā)手機(jī)客戶端和PC平臺(tái)端發(fā)送的音頻數(shù)據(jù)。多媒體系統(tǒng)的框架如圖1所示。
客戶端功能主要包括語音通話模塊、圖像和本地錄像上傳功能模塊。其中,語音通話模塊實(shí)現(xiàn)邀請(qǐng)并建立語音通話實(shí)現(xiàn)實(shí)時(shí)通話。圖像和本地錄像上傳功能模塊實(shí)現(xiàn)FTP連接并將圖像和本地錄像上傳到服務(wù)器上。
圖1 多媒體交互系統(tǒng)框架
2.1語音通話模塊的設(shè)計(jì)
主叫用戶需要進(jìn)行語音聊天時(shí),需要向SIP服務(wù)器發(fā)送INVITE的SIP消息,其中SIP消息的消息體為XML文本數(shù)據(jù)。XML消息體內(nèi)容如下所示:
此消息體中包含了會(huì)話媒體格式、主叫用戶的號(hào)碼、被叫用戶的號(hào)碼等信息。SIP服務(wù)器接收到消息后,開始分配資源并且回復(fù)主叫用戶Tring消息。接著服務(wù)器將添加了分配好的資源消息的邀請(qǐng)消息轉(zhuǎn)發(fā)給被叫用戶。被叫用戶收到邀請(qǐng)消息后,如果同意進(jìn)行語音通話,則回復(fù)200 OK給SIP服務(wù)器。最后主叫用戶接收到SIP服務(wù)器轉(zhuǎn)發(fā)的200 OK消息,此時(shí)雙方就可以進(jìn)行音頻通話了。若此時(shí)Android手機(jī)客戶端是主叫用戶,則跳入主叫音頻會(huì)話界面;若為被叫用戶則跳轉(zhuǎn)到被叫音頻會(huì)話界面。當(dāng)通話中的任意一方想要結(jié)束通話時(shí),可以選擇掛斷,并向SIP服務(wù)器發(fā)送BYE SIP消息。SIP服務(wù)器收到掛斷消息后,轉(zhuǎn)發(fā)給另一方后開始釋放資源。被掛斷用戶收到掛斷消息后回復(fù)200 OK給服務(wù)器,由服務(wù)器轉(zhuǎn)發(fā)此消息給主掛斷用戶。語音通話建立和結(jié)束的過程如圖2所示。
圖2 音頻請(qǐng)求SIP交互過程
在Android手機(jī)端上實(shí)現(xiàn)與平臺(tái)語音通話,不僅包括發(fā)送端部分也包括接收端部分。發(fā)送端需要實(shí)現(xiàn)原始PCM音頻數(shù)據(jù)采集、音頻數(shù)據(jù)編碼和打包發(fā)送。接收端需要實(shí)現(xiàn)音頻數(shù)據(jù)包的接收以及解碼和PCM音頻數(shù)據(jù)的播放。音頻會(huì)話框架圖如圖3所示。
圖3 音頻會(huì)話框架圖
從Android手機(jī)硬件麥克風(fēng)獲取原始的PCM音頻數(shù)據(jù),通過對(duì)其進(jìn)行G711壓縮編碼,使得減少發(fā)送到網(wǎng)絡(luò)上的碼率,調(diào)用jlibrtp庫用RTP格式數(shù)據(jù)包將壓縮后的G711數(shù)據(jù)打包發(fā)送到網(wǎng)絡(luò)上。RTP數(shù)據(jù)包的接收是通過新建一個(gè)RTPRecieve類實(shí)現(xiàn)jlibrtp中的RTPAppIntf回調(diào)接口實(shí)現(xiàn)的。接收的RTP數(shù)據(jù)包通過G711解碼還原成原始PCM數(shù)據(jù)流,此時(shí)經(jīng)過解碼得到的PCM數(shù)據(jù)流并不直接拿去播放,而是先放在緩存中,再由播放線程來播放,數(shù)據(jù)接收解碼和數(shù)據(jù)播放置于兩個(gè)不同的線程中,不僅可以提高網(wǎng)絡(luò)的容錯(cuò)能力,還可以增強(qiáng)系統(tǒng)的健壯性。音頻會(huì)話流程圖如圖4所示。
圖4 Android手機(jī)端音頻會(huì)話流程圖
軟件中的音頻采集和播放分別是根據(jù)Android平臺(tái)下的AudioRecorder和AudioTrack集合框架類實(shí)現(xiàn)的。經(jīng)過流程圖步驟,基于Android的音頻通話的實(shí)現(xiàn)基本完成。
2.2圖像和本地錄像上傳模塊的設(shè)計(jì)
此模塊的主要功能是將Android手機(jī)拍照下來的圖像和錄像使用FTP協(xié)議上傳到服務(wù)器上。FTP會(huì)話主要包括獲取配置信息、請(qǐng)求連接服務(wù)器、登錄、數(shù)據(jù)上傳以及斷開連接釋放資源,具體流程圖如圖5所示。
在上傳文件之前,軟件客戶端需要向SIP服務(wù)器發(fā)送NOTIFY消息來獲取FTP信息。NOTIFY消息的消息體內(nèi)容如下。
SIP服務(wù)器接收到此NOTIFY消息后開始解析xml消息,當(dāng)解析出ftpinfo_query節(jié)點(diǎn)后,回復(fù)200OK和FTP連接信息。200 OK的SIP消息體的內(nèi)容如下。
圖5 FTP上傳流程圖
當(dāng)Android軟件客戶端接收到此SIP消息,并解析出ftpinfo_query_response節(jié)點(diǎn)時(shí),將result值、server_ip、用戶名以及密碼解析出來并存到自定義的FtpInfo中。然后初始化FTP,并通過openConnect()函數(shù)來打開FTP服務(wù)。在openConnect()函數(shù)中,F(xiàn)TPClient為FTP連接,通過構(gòu)造函數(shù)傳進(jìn)來的參數(shù)建立,首先通過ftpClient.connect()來連接服務(wù)器,再通過ftpClient.login()登錄到服務(wù)器。FTP服務(wù)打開之后,就可以對(duì)圖像文件或者錄像文件進(jìn)行上傳操作。首先生成需要上傳的文件:File file=new File(localpath),參數(shù)localpath為本地文件的名稱,通過CreatFtpPath()函數(shù)生成遠(yuǎn)程FTP服務(wù)器的對(duì)應(yīng)路徑名稱,最后通過ftp.uploading()函數(shù)上傳文件,可通過返回值result來判斷上傳是否成功。在uploading()函數(shù)中,首先如果遠(yuǎn)程的服務(wù)器沒有上傳的目錄則需創(chuàng)建,則需對(duì)當(dāng)前FTP目錄初始化,并設(shè)置二進(jìn)制文件上傳和設(shè)置流傳輸模式,在改變FTP目錄后,需要判斷本地文件為多個(gè)還是單個(gè),如果是多個(gè)則調(diào)用上傳函數(shù)uploadingMany()來實(shí)現(xiàn)上傳,若是單個(gè)則調(diào)用uploadingSingle()來實(shí)現(xiàn)上傳。在uploadingMany()中反復(fù)調(diào)用uploadingS-ingle()來實(shí)現(xiàn)多個(gè)文件的上傳。在上傳函數(shù)中,首先需要?jiǎng)?chuàng)建輸入流inputStream,文件上傳完畢后關(guān)閉文件流。上傳結(jié)束后需要結(jié)束FTP服務(wù)來釋放對(duì)應(yīng)的資源。
在實(shí)驗(yàn)室WIFI條件下,軟件客戶端在摩托羅拉XT910(Android 4.1.2)和HTC One V(Android 4.0.3)設(shè)備上測試通過,成功實(shí)現(xiàn)了音頻通話以及圖像的上傳。如圖6所示,其中圖6(a)為手機(jī)客戶端音頻被呼叫界面,圖6(b)為Android手機(jī)端語音通話界面,圖6(c)為PC端音頻會(huì)話界面,語音會(huì)話過程中通話流暢,延時(shí)較小。圖6(d)為手機(jī)軟件端圖像上傳界面,上傳成功后可以登錄FTP服務(wù)器看到上傳的圖像,如圖6(e)所示。
圖6 軟件界面
隨著Android智能手機(jī)的普遍使用和移動(dòng)互聯(lián)網(wǎng)技術(shù)的迅速發(fā)展,在Android手機(jī)上開發(fā)越來越廣泛。在Android手機(jī)上開發(fā)音頻通話,不僅有較好的通話體驗(yàn),并且不會(huì)產(chǎn)生通信費(fèi)用,只是消耗一定的流量。通過Android手機(jī)拍照和錄像的便利性,能夠存儲(chǔ)于手機(jī)中并且根據(jù)需求實(shí)現(xiàn)上傳圖像和錄像。軟件客戶端能夠滿足人們對(duì)多媒體應(yīng)用軟件的需求。
[1]史元春,徐光祐,高原.中國多媒體技術(shù)研究:2011[J].中國圖象圖形學(xué)報(bào),2012,17(7):741-747.
[2]賀丹丹,施展.基于Android的VoIP系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2011,34(6):28-31.
[3]BURNETTE E.Hello,Android:introducing Google′s mobile development platform[M].Pragmatic Bookshelf,2009.
[4]朱雷堅(jiān).基于Android的實(shí)時(shí)語音通信系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].杭州:浙江工業(yè)大學(xué),2013.
The design and implementation of mobile multimedia application software based on Android
Li Tingting,Meng Limin
(Zhejiang Provincial Key Laboratory of Communication Networks and Applications,Zhejiang University of Technology,Hangzhou 310023,China)
In order to achieve audio session and image upload on Android mobile phone platform,a mobile multimedia application software based on Android is designed.Firstly,this paper introduces the current status of multimedia,then designs and realizes the VOIP on mobile terminal and images upload by using FTP protocol.Finally,the test results show that users can have good call experience over the audio conversion between the software client and the PC client.After landing the FTP sever,users can view the images uploaded by software.
Android;multimedia application;Voice Over IP(VOIP);File Transfer Protocol(FTP)
TP37
A
1674-7720(2015)10-0035-03
2014-12-17)
李婷婷(1990-),通信作者,女,碩士研究生,主要研究方向:通信與信息系統(tǒng),Android手機(jī)應(yīng)用開發(fā)。E-mail:1059172787@qq.com。
國家自然科學(xué)基金資助項(xiàng)目(61372087)