APP下载

基于安卓平台的会议系统的设计与实现

2016-08-19田茂青

电脑知识与技术 2016年20期
关键词:安卓

田茂青

摘要:论文介绍了安卓系统下的WLAN电话会议应用系统。该系统通过局域网组播技术向网内其他终端发起会议请求,终端收到请求后过滤参会人员名单,确定本机是否参与此次电话会议。各方建立起连接后,利用安卓的audioManager的audioTranck底层技术对语音采集,并将采集的语音数据封装成包,自定义包头类型,利用组播技术和socket编程技术传送到各个终端机。终端机对语音数据包解析并进行混音处理,利用audioVoice技术播放收到的语音数据包,通过调整发包频率,优化语音效果,最终达到流畅清晰的语音效果。

该系统采用P2P的网络输出方式,不需要额外的服务器做支撑,安装简单方便,大大降低了使用成本。

关键词:安卓;组播;P2P;语音混音

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)20-0094-02

随着移动互联网的发展,无线网络和智能手机的普及,“运营商+设备厂商”的模式受到了严重的冲击[1],人们不再依赖数据流量上网,更青睐于不限流量、不限时长的无线网络。电话会议便是依于局域网Wifi的通话软件,将企业成本降到最低,参会人员则从会议室被解救,人们只需一部安卓手机,连上同一网络,就可以实现移动中的会议。大大提高了工作效率。

1 需求分析

该系统需要实现基于无线网络技术的电话会议系统,该系统应能运行在安卓操作系统的终端上,包括手机和平板。

指定管理员可对通讯录进行编辑,通讯录的编辑包括对联系人和群组的编辑,并且能够将通讯录同步给局域网内其他人员,保证终端设备能够得到其他设备的唯一标志(即设备ID)。使用者可以选择联系人,发出会议邀请,与会人员同意后进入会议大厅,可以实现清晰的实时通话,并能支持多人同时发言。其次,要支持同一局域网内可同时开启多个会议,并保证语音数据准确无混淆的发送到指定终端。

在实现以上基本功能的基础上,应能保证语音效果清晰完整,严格控制延时时间和丢包率。对于多人同时发言,应能做好混音效果。

2 概要设计

2.1 系统体系结构设计

系统主要分为两层,第一层为用户界面层,第二层为后台监听层。

用户界面层:用户选择参加会议的人员,并向其发送会议邀请。对方同意后,双方进入会议大厅,可以点击发言,同时收听各方的语音。

后台监听层:自用户打开该软件,后台Service就处于监听状态,监听来自组播地址239.1.1.1的数据包,这个组播组用于电话会议,一旦收到数据包,将解析该数据包,数据包包括发送人的ID,以及数据包类型,判断是会议邀请包,则发送广播,手机状态栏会出现通知,并伴有通知铃声,提示用户收到会议邀请。

另一个service监听来自组播组239.1.1.2的数据包,该组播组用于同步联系人,该种类型的数据包包括包类型,以及包含联系人姓名,号码映射对的列表,用户通过选择更新,将数据包中的联系人更新至本机。

2.2 电话会议系统各个功能模块介绍

配置功能:配置功能需要凭借密码进入,此功能在用户第一次使用该软件时由管理员为其配置,包括用户权限的配置和设备ID的配置,权限包括是否可以对通讯录进行编辑,是否可以向其他人发送通讯录。设备ID则为一个四位数编号,具有唯一性,用来唯一标识此台设备。这样设计的目的是为了强制控制用户权限,避免使用人员随意更改用户名,使用不易识别身份的用户名。

通讯录功能:包括联系人的增删改查、群组的增删改查。普通用户只具有查看的功能,超级用户(即通过配置有编辑权限的用户)具有全部的功能,并可以将本机的通讯录同步给其他人。

WLAN会议功能:任何用户都可以选择人员后,发送会议邀请,进入会议大厅,对方接受邀请后,指示图片变亮,此时可以点击发言按钮进行讲话,发言完毕,关闭发言按钮。支持多人同时讲话,支持耳机插入。

3 详细设计

3.1 主页面

用户主界面,如图1所示,清晰地显示了应用的功能,可以点击进入通讯录、配置、电话会议。除了用户界面上显现的功能外,在打开主页面这一过程中,还完成了系统启动时的初始化功能。

3.2 配置

在初次使用该系统时,要对设备进行一些必要的配置,界面如图2所示。此配置应由指定人员负责,指定人员凭借密码进入配置页面,配置用户的用户名和权限[2]。

3.3 WLAN电话会议

电话会议功能是本系统的核心功能,它包括用户向局域网中发送指定名单的会议邀请,通过邀请后,多方人员处于一个会议组中进行会议。包括音频的录制与播放,数据包的发送与接收,多方语音的混音处理。以及同一局域网中实现同时进行多个会议。这个功能中用到了很多技术,包括局域网组播技术、安卓音频录制播放技术、混音处理技术、socket编程、数据包的解析等[3]。下面详细介绍电话会议功能的处理流程。

第一步,会议发起人发起会议。选择完参加会议的人员后,将包含本机ID、会议名称、会议主题、会议邀请名单的数据包,通过组播组239.1.1.1组播[4]出去。

第二步,接受会议邀请。一旦有一台主机向该局域网中的239.1.1.2组播组发送了一个数据包。所有处于该局域网中的主机都会做出反应。首先将数据包接下。判断是否属于会议邀请包。如果是,则解析其中的会议邀请名单,与本机ID进行比对,名单中包含本机则向该应用中发送广播,提示用户收到会议邀请通知,用户点击接受邀请后进入会议大厅界面。

第三步,录制音频。当用户按下发言按钮时,图片变亮,提示用户可以讲话了。此时启动AudioRec线程,该线程负责初始化组播信息,然后调用系统AudioRecord类,开始录制音频,定义录制频率为8000Hz,录制的音频放在缓存中,每隔3ms,将语音数据打包,封装上4位用户名的头部,通过组播组广播到其他手机。

第四步,播放混音后的音频。接收到来自别的主机的音频数据包时,首先判断是否是新用户发来的,如果是新的用户将其数据包加在该会议的用户列表中,将链表中的数据包解析,将音频处理成16bit的字节数据,对这些字节数据进行加和求平均的处理,最后将混合后的语音合成,调用AudioTrank类播放。

参考文献:

[1] 刘宝玲, 付长东, 张轶凡. 3G移动通信系统概述[M]. 北京: 人民邮电出版社, 2008.

[2] 王东明. 精彩绝伦的Android UI设计:响应式用户界面与设计模式[J].中国科技信息, 2013(24):124.

[3] Reto Meier. Android 4高级编程[M]. 佘建伟, 赵凯, 译. 3版.北京: 清华大学出版社, 2013.

[4] 刘莹. Internet组播体系结构[M].北京: 科学出版社, 2008.

猜你喜欢

安卓
MIPS安卓平台上ARM二进制翻译系统
文物表情包
安卓系统或成智能汽车标配
一种基于安卓系统的手机侧抓包分析方法
安卓L未至安卓M来了!安卓首泄漏M系统