标题 | 基于安卓平台的会议系统的设计与实现 |
范文 | 田茂青 摘要:论文介绍了安卓系统下的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. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。