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