基于Android的手机多媒体应用软件的设计与实现*
2015-10-20李婷婷孟利民浙江工业大学浙江省通信网技术应用研究重点实验室浙江杭州310023
李婷婷,孟利民(浙江工业大学 浙江省通信网技术应用研究重点实验室,浙江 杭州 310023)
基于Android的手机多媒体应用软件的设计与实现*
李婷婷,孟利民
(浙江工业大学浙江省通信网技术应用研究重点实验室,浙江杭州310023)
为了实现基于Android手机平台的音频会话和图像上传,设计了一个基于Android手机的多媒体应用软件。首先介绍了Android端的多媒体发展趋势,然后介绍了如何设计并实现在手机端的VOIP以及利用FTP协议上传图像。测试结果表明,用户可以通过软件客户端与PC客户端进行音频会话,并有良好的通话体验,登录FTP服务器可以查看到通过软件上传的图像。
Android;多媒体应用;VOIP;FTP
0 引言
多媒体技术[1]是指包括对文字、图像、声音以及视频等媒体数据进行处理分析、传输以及应用的技术。市场上出现的多种多媒体应用不仅可以帮助人们进行日常沟通,还有多种功能,包括了视频监控、IP电话[2]以及即时消息等。Android[3]是一个开放自由的移动终端平台,以其开源、免费等特点吸引了大量开发研究人员和厂商,并获得了用户的喜欢,是目前市场上主流的移动设备。随着手机硬件性能的提高和移动数据网络的发展,Android应用程序将拥有强大的多媒体数据处理能力,手机上的多媒体应用将会成为手机用户的焦点,给人们带来极大的便利性[4]。
1 多媒体系统框架设计
多媒体交互系统主要包括Android手机客户端、服务器端和PC平台端。Android手机客户端需要实现音频的收发,发送端需要实现的功能包括音频的采集、编码压缩、RTP打包封装以及发送,而接收端需要实现接收RTP包并且通过解码来播放音频。手机客户端还需要向服务器发送SIP消息来邀请音频通话,并建立FTP连接来传送图片和录像。FTP服务器主要负责管理图片和录像;SIP消息作为整个系统的控制信令,SIP服务器负责管理登录以及转发SIP消息;媒体转发服务器负责转发手机客户端和PC平台端发送的音频数据。多媒体系统的框架如图1所示。
2 客户端软件设计
客户端功能主要包括语音通话模块、图像和本地录像上传功能模块。其中,语音通话模块实现邀请并建立语音通话实现实时通话。图像和本地录像上传功能模块实现FTP连接并将图像和本地录像上传到服务器上。
图1 多媒体交互系统框架
2.1语音通话模块的设计
主叫用户需要进行语音聊天时,需要向SIP服务器发送INVITE的SIP消息,其中SIP消息的消息体为XML文本数据。XML消息体内容如下所示:
此消息体中包含了会话媒体格式、主叫用户的号码、被叫用户的号码等信息。SIP服务器接收到消息后,开始分配资源并且回复主叫用户Tring消息。接着服务器将添加了分配好的资源消息的邀请消息转发给被叫用户。被叫用户收到邀请消息后,如果同意进行语音通话,则回复200 OK给SIP服务器。最后主叫用户接收到SIP服务器转发的200 OK消息,此时双方就可以进行音频通话了。若此时Android手机客户端是主叫用户,则跳入主叫音频会话界面;若为被叫用户则跳转到被叫音频会话界面。当通话中的任意一方想要结束通话时,可以选择挂断,并向SIP服务器发送BYE SIP消息。SIP服务器收到挂断消息后,转发给另一方后开始释放资源。被挂断用户收到挂断消息后回复200 OK给服务器,由服务器转发此消息给主挂断用户。语音通话建立和结束的过程如图2所示。
图2 音频请求SIP交互过程
在Android手机端上实现与平台语音通话,不仅包括发送端部分也包括接收端部分。发送端需要实现原始PCM音频数据采集、音频数据编码和打包发送。接收端需要实现音频数据包的接收以及解码和PCM音频数据的播放。音频会话框架图如图3所示。
图3 音频会话框架图
从Android手机硬件麦克风获取原始的PCM音频数据,通过对其进行G711压缩编码,使得减少发送到网络上的码率,调用jlibrtp库用RTP格式数据包将压缩后的G711数据打包发送到网络上。RTP数据包的接收是通过新建一个RTPRecieve类实现jlibrtp中的RTPAppIntf回调接口实现的。接收的RTP数据包通过G711解码还原成原始PCM数据流,此时经过解码得到的PCM数据流并不直接拿去播放,而是先放在缓存中,再由播放线程来播放,数据接收解码和数据播放置于两个不同的线程中,不仅可以提高网络的容错能力,还可以增强系统的健壮性。音频会话流程图如图4所示。
图4 Android手机端音频会话流程图
软件中的音频采集和播放分别是根据Android平台下的AudioRecorder和AudioTrack集合框架类实现的。经过流程图步骤,基于Android的音频通话的实现基本完成。
2.2图像和本地录像上传模块的设计
此模块的主要功能是将Android手机拍照下来的图像和录像使用FTP协议上传到服务器上。FTP会话主要包括获取配置信息、请求连接服务器、登录、数据上传以及断开连接释放资源,具体流程图如图5所示。
在上传文件之前,软件客户端需要向SIP服务器发送NOTIFY消息来获取FTP信息。NOTIFY消息的消息体内容如下。
SIP服务器接收到此NOTIFY消息后开始解析xml消息,当解析出ftpinfo_query节点后,回复200OK和FTP连接信息。200 OK的SIP消息体的内容如下。
图5 FTP上传流程图
当Android软件客户端接收到此SIP消息,并解析出ftpinfo_query_response节点时,将result值、server_ip、用户名以及密码解析出来并存到自定义的FtpInfo中。然后初始化FTP,并通过openConnect()函数来打开FTP服务。在openConnect()函数中,FTPClient为FTP连接,通过构造函数传进来的参数建立,首先通过ftpClient.connect()来连接服务器,再通过ftpClient.login()登录到服务器。FTP服务打开之后,就可以对图像文件或者录像文件进行上传操作。首先生成需要上传的文件:File file=new File(localpath),参数localpath为本地文件的名称,通过CreatFtpPath()函数生成远程FTP服务器的对应路径名称,最后通过ftp.uploading()函数上传文件,可通过返回值result来判断上传是否成功。在uploading()函数中,首先如果远程的服务器没有上传的目录则需创建,则需对当前FTP目录初始化,并设置二进制文件上传和设置流传输模式,在改变FTP目录后,需要判断本地文件为多个还是单个,如果是多个则调用上传函数uploadingMany()来实现上传,若是单个则调用uploadingSingle()来实现上传。在uploadingMany()中反复调用uploadingS-ingle()来实现多个文件的上传。在上传函数中,首先需要创建输入流inputStream,文件上传完毕后关闭文件流。上传结束后需要结束FTP服务来释放对应的资源。
3 效果演示
在实验室WIFI条件下,软件客户端在摩托罗拉XT910(Android 4.1.2)和HTC One V(Android 4.0.3)设备上测试通过,成功实现了音频通话以及图像的上传。如图6所示,其中图6(a)为手机客户端音频被呼叫界面,图6(b)为Android手机端语音通话界面,图6(c)为PC端音频会话界面,语音会话过程中通话流畅,延时较小。图6(d)为手机软件端图像上传界面,上传成功后可以登录FTP服务器看到上传的图像,如图6(e)所示。
图6 软件界面
4 结论
随着Android智能手机的普遍使用和移动互联网技术的迅速发展,在Android手机上开发越来越广泛。在Android手机上开发音频通话,不仅有较好的通话体验,并且不会产生通信费用,只是消耗一定的流量。通过Android手机拍照和录像的便利性,能够存储于手机中并且根据需求实现上传图像和录像。软件客户端能够满足人们对多媒体应用软件的需求。
[1]史元春,徐光祐,高原.中国多媒体技术研究:2011[J].中国图象图形学报,2012,17(7):741-747.
[2]贺丹丹,施展.基于Android的VoIP系统的设计与实现[J].现代电子技术,2011,34(6):28-31.
[3]BURNETTE E.Hello,Android:introducing Google′s mobile development platform[M].Pragmatic Bookshelf,2009.
[4]朱雷坚.基于Android的实时语音通信系统的设计与实现[D].杭州:浙江工业大学,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-),通信作者,女,硕士研究生,主要研究方向:通信与信息系统,Android手机应用开发。E-mail:1059172787@qq.com。
国家自然科学基金资助项目(61372087)