应用场景
本项目实现之初旨在共享局域网中的音频设备(如蓝牙耳机或大型扬声器)。除此之外,本项目实现的协议能够用于搭建基于 WiFi Direct 网络的高效的实时音频传输网络,能够用于实现音频会议等场景。
背景技术
1.Wi-Fi Direct技术
相较于蓝牙技术,Wi-Fi技术有带宽更大、传输距离更远、抗干扰能力更强等优点,而且还能够使用传统的TCP/IP网络协议栈。但是传统Wi-Fi网络的建立需要有一台设备充当接入点(AP),不能方便的构建网络。而Wi-Fi Direct技术则解决了这个问题,它不需要指定的设备充当AP,多台设备可以以Ad-hoc自组网的形式组织网络。为了方便快捷的传输音频信号,因此我们选用Wi-Fi Direct技术组成网络。
2.服务发现协议、心跳协议和音频控制协议
在该部分,我们称音频信号的发送者为Client端,音频信号的接受者为Server端。
在我们设想的情景中,Server端可能是网络中的任意一台设备,因此Server端的地址是不确定的。如果让用户自行寻找Server端的地址,这显然是一件不合理的事情,因此我们需要设计一个服务发现协议,让Client端可以自动的发现网络中的Server端。同时,为了确保通信的正确进行,我们需要Server端和Client端每隔一段时间都去确认双方是否都还在当前网路中。为此我们设计了心跳协议。
为了方便Server端接收并播放音频流,Client端在开始发送音频前和停止发送音频后,都应该向Server端