项目概述:
CSound是一款WiFi音箱的专用APP,APP与音箱之间使用MQTT协议进行通信,通过为音箱配置网络,使音箱连接至自建的MQTT服务器,APP就可以通过使用约定好的协议控制音箱播放、暂停、设置音量、推送歌曲列表等功能。项目共分为四个模块:用户模块、音乐播放模块、设备配网模块、设备控制模块。
项目分工:
我主要负责其中的设备配网模块和设备控制模块,并为音乐播放模块提供控制音箱播放、暂停、推送列表、更新播放信息的方法。
设备配网模块:手机与音箱AP热点连接,APP通过UDP广播向音箱发送WiFi的SSID与密码,随后手机回连到相应WiFi,等待音箱连接至WiFi,APP接收到音箱发出的UDP广播则配网成功,随后将音箱绑定至当前账号。
设备控制模块:让APP跟音箱连接至同一个自建的MQTT服务器,连接成功后,APP订阅心跳主题、上行主题,其中心跳主题是音箱上报的心跳包,心跳包是APP用来判断音箱是否在线的依据,同时心跳包也会带有正在播放的歌曲信息。上行主题是音箱对APP下发的指令回复的地方,APP会根据约定好的协议对上行主题的内容进行解析,根据解析到的内容来更新相应的UI。A