基于Android的无线局域网内实时对讲通信系统设计毕业论文
2021-05-13 22:55:44
摘 要
近年来,人们对于通信的理解已不再局限于以前的电话和短信。随着网络技术的飞速发展和智能手机的不断普及,QQ、微信等聊天软件已经逐渐被人们所适应。而作为这些软件中必不可少的语音对讲功能,也随着网络的普及以及网络环境的日益稳定而变得流行起来。与传统的电话相比,使用网络来实现语音对讲资费较低,效率较高。这主要得益于网络传输数据成本较低。我们有理由相信在不远的未来这种通信方式会成为主流通信方式的一种。
本文主要的目的就是设计一个基于android平台的无线局域网实时语音对讲软件。其主要功能是为了让在同一局域网的用户,可以进行免费的语音对讲。本文还介绍了一些android开发中,关于网络传输,语音数据编解码技术,以及UDP、RTP协议等。由于设计的需要,本软件实现了在线用户的实时捕捉与刷新功能,采用16位PCM编码对语音数据进行采样,利用UDP协议进行控制信令的传输,并通过RTP协议进行实时语音数据的传输。在开发过程中利用多线程技术完成了数据流的接收和发送、语音数据的采样与播放,还调用了开源库中的Jlibrtp中的类、接口等来实现音视频会话的建立过程。此软件的开发在android studio中完成,经过测试此软件可以在多个android操作系统的移动终端正常运行,实现同一无线网络的实时语音对讲。
关键字:android;UDP;RTP;语音数据传输
Abstract
In recent years, the meaning of communication is no longer limited to making a phone call or SMS. With the development of network technology and the popularity of smart phones, people prefer to connect each other with communication softwares like QQ and weixin. Cause of the popularity of the network and the growing stability of the network environment, audio communication by network, as the essential part of these softwares , becomes more and more popular. Compared with the traditional telephone, chat in network is more cheap and more efficient. This is mainly due to the lower cost of data transmission in network. So, we can believe that this will become a trend in the future.
The main purpose of this paper is to design a real-time audio communication software over WLAN based on android platform. Its main function is to make users on the one WLAN can make free audio communication. This paper also introduces some technologies in android development about the network transmission, audio codec algorithm, UDP and RTP.As the request of the design, this application will catch all users in WLAN, and encode the audio with 16-bit PCM. Also, it will use RTP as transmission protocol for real-time audio data and UDP protocol as transmission protocol for control signaling. To transmit and receive the data stream from others and play and sample the audio data, we choose multithreading during development. Also we choose the classes, interfaces, etc. from the open source library – Jlibrtp to establish the process of audio sessions. The development of this software completed in android studio. After the test,this software runs properly on those mobile phones with the Android platform.It works well in providing audio chat in WLAN for users.
Keywords: android; UDP; RTP; audio transmission
目 录
第1章 绪论 1
1.1 引言 1
1.2 研究背景及意义 1
1.3 本文的研究工作和内容安排 1
第2章 相关技术和开发平台 3
2.1 Android简介 3
2.2 RTP简介 4
2.2.1 RTP简介 4
2.2.2 jlibrtp库介绍 4
2.3 socket套接字 4
2.3.1 DatagramSocket 4
2.3.2 MulticastSocket(组播) 5
第3章 基于android的实时语音对讲软件的系统构架 7
3.1 需求分析 7
3.2 系统框架 7
第4章 基于android的实时语音对讲软件的详细设计 9
4.1 UI设计 9
4.1.1 用户主界面设计 9
4.1.2会话界面设计 11
4.1.3 呼叫请求对话框设计 12
4.1.4 活动启动模式选择 12
4.2 控制信令的制定以及发送和接收 13
4.3 用户上下线以及在线用户列表刷新模块的实现 14
4.3.1 用户上下线的实现 14
4.3.2 在线用户列表刷新 16
4.4 语音对话模块的实现 17
4.4.1 语音会话的发起和结束 17
4.4.2 语音对讲功能的实现 18
第5章 软件测试及总结 21
5.1 软件测试 21
第6章 总结 30
参考文献 31
致 谢 32
第1章 绪论
1.1 引言
一直以来,一对一的网络聊天在网络社交中一直占有着极大的比重,而早期的网络社交软件由于技术限制,在聊天模块中大多只能采用文字消息的形式来沟通,不过这已经使得传统手机功能——短信的衰落。现在,受益于网络速度的提升和普及,以及智能手机性能的提高,靠网络进行语音聊天也成为了可能,并且其成本也远远低于电话。随着技术的成熟,我们有理由相信网络语音聊天也会逐渐成为一种趋势而慢慢取代传统电话的地位。
本课题针对android系统的移动设备开发一款基于无线局域网的实时语音对讲应用软件。目的是使的在同一局域网的用户能够互相进行实时语音聊天。
1.2 研究背景及意义
目前国内而言,存在很多的基于网络的语音电话软件,并且,qq、微信等传统知名社交软件也逐渐添加了这个功能。在我们的日常生活中,我们也时时感受到了语音聊天对我们产生了不小的影响。但是,语音聊天的普及仍然存在很多阻碍。其主要原因还是来自于网络资费较高,而且网络信号也并不稳定。然而,无线局域网能够很好的解决这个问题[1]。自1999年,IEEE官方定义了802.11标准以来,Wi-Fi在这十几年间得到了飞速的发展。尤其现在,Wi-Fi已经成为智能手机不可或缺的功能。虽然现在普遍的民用无线路由器信号覆盖范围有限,但是其超低的资费还是拥有很大的优势。与3g,4g网络,电话网这种用一定的资费换取有限的使用额度,Wi-Fi并没有对使用额度进行较大的限制。所以这也是我们选择无线局域网作为语音聊天软件开发的网络环境的一大原因[2]。
现在,在国内市场中较为有名的局域网聊天软件有:网络飞鸽,飞鸽传书,iMO, RTX(腾讯通)等。这些大多目标人群都是企业级的用户。主要用于企业内部的沟通和会议通知等。而面对普通人群的局域网语音聊天软件却并无多少,而且质量良莠不齐。在局域网覆盖面积不断扩大的今天,Wi-Fi在人们网络通信中所占比例也不断提高,所以,将局域网语音对讲通信软件由企业级转向民用化也变得迫切而有意义。当在手机上安装了局域网实时语音对讲软件后,人们可以在一个覆盖了无线局域网的公共场所内进行语音通信,在商场,在学校,在超市,在办公大楼,打电话给同一局域网中的用户,再也不需要支付昂贵的资费,正真做到随心所欲的沟通。
1.3 本文的研究工作和内容安排
本文研究并设计了一款基于android系统在无线局域网的环境下语音实时对讲的应用软件。通过将音频数据采样,编解码,借由rtp协议进行传输来完成语音的实时传输。再通过socket套接字将自定义的信令进行传输来完成不同用户的操作同步协调。借此完成两个在同一局域网的用户能进行实时语音对讲的功能。