多人视频会议系统:私聊、聊天室、音视频通话、共享屏幕 1.1 初始化页面组件:Pages IntroductionPage JoinRoomPage RoomPage 创建页面路由:react-router-dom 1.1.1 IntroductionPage 基础实现 1.1.2 JoinRoomPage 基础实现 实现action:isRoomHost 1.1.3 初始化房间界面(加入、创建房间) 实现初始化界面输入框 1.1.4 实现初始化界面中仅开启音频选择框 格式化代码 1.1.5 错误信息提示组件 加入/创建房间、返回按钮 1.1.6 加入房间、创建房间(axios) 存储房间信息 1.2 会议房间基本布局 1.2.1 会议参与者区域界面模拟 1.2.2 视频按钮UI实现 1.2.3 获取用户媒体流许可 1.2.4 增加捕获画面前的覆盖动画 1.2.5 构建前后端socket连接 1.2.6 初始化房间连接 新用户加入房间 1.2.7 用户离开房间 关闭房间 1.3 构建 WebRTC Mesh架构 实例化对等连接对象 配置STUN服务器 交换信令数据:peer1 -> peer2 1.3.1 完成信令数据的交换:peer2 -> peer1 获取远端媒体流 1.3.2 优化信令数据交换逻辑及相关代码 1.3.3 创建容器,显示本地和远程视频流 1.3.4 补充用户断开连接逻辑 控制视频分辨率、放大、缩小 1.3.5 实现音视频开关功能 1.3.6 实现共享屏幕功能 将共享屏幕数据流发送给其他用户 1.3.7 实现消息组件、聊天室功能 1.3.8 实现发送、接收消息功能 1.3.9 React降级到17 修复若干bug 1.3.10 仅开启音频会议功能实现 1.3.11 增加路由守卫 仅音频连接时隐藏多余按钮 1.3.12 创建私信组件,实现私信相关状态控制 1.3.13 创建发送消息组件 实现切换私聊对象功能 1.3.14 实现发送、接收私聊消息功能 1.3.15 保存并显示私聊消息,消息自动滑动 1.3.16 点击复制roomId 聊天室消息自动下滑 优化部分样式 不发送空消息 1.3.17 修改部分配置和样式 1.3.18 美化样式,更改视频布局 增加消息时间 1.4.1 全面更换视频展示 1.4.2 更新配置 1.4.3 完成本地视频显示和基本连接操作 1.4.4 优化代码,使用use获取视频状态 修复屏幕共享功能 TODO 优化多人时视频样式 获取并显示远程视频 1.4.5 优化参会者信息处理方式 1.4.6 本地音视频数据处理 1.4.7 远程音视频数据处理 共享屏幕功能初步修复 Wrong 取消/开启共享屏幕时,其他人需要点击操作后才能更新 共享屏幕打开时,进入会议室的人也只能看到视频,无法看到共享屏幕 视频布局(样式) 聚焦的视频成员退出时,样式未更改 1.4.8 修复 取消/开启共享屏幕时,其他人需要点击操作后才能更新 共享屏幕打开时,进入会议室的人也只能看到视频,无法看到共享屏幕 聚焦的视频成员退出时,样式未更改 Wrong 视频布局(样式) 参会者视频不显示 1.4.9 删除旧视频组件,格式化代码 1.4.10 整理并优化icons Wrong 视频数量更新不及时导致样式错误 视频布局(样式) 参会者视频不显示 1.4.11 修复已知bug 1.4.12 修复开始共享屏幕和结束共享屏幕时样式不正确和报错问题 优化视频样式 1.4.13 定时检查新消息 多人聚焦视图样式优化