zomie
❗ 项目在 1peer 分支上继续 ❗
类似 Google Meet 的在线会议应用,使用 Flutter 为所有平台构建。该应用使用 WebRTC 进行媒体实时通信,并使用 socket.io 进行信令和消息传递。服务器 在 Node.js 上运行,采用 SFU 方法。
-
特点
- 创建房间
- 生存时间(默认 1 分钟)
- 到达生存时间且房间内无人时,房间将自行销毁
- 密码(可选)
- 生存时间(默认 1 分钟)
- 大厅
- 准备会议
- 麦克风和摄像头权限
- 准备会议
- 会议房间
- 视频和音频通信
- 静音/取消静音麦克风
- 开启/关闭摄像头
- 聊天室
- 屏幕共享
- 视频和音频通信
- 创建房间
-
已测试平台状态
- ✔️ Android(已测试)
- ✔️ Windows(已测试)
- ❗ 屏幕共享(尚未工作)
- ✔️ Web(已测试)
- ❗ iOS(尚未测试)
- ❗ Linux(尚未测试)
- ❗ Mac(尚未测试)
#SS 应用
- 桌面-Windows
- 移动-Android
- Web 浏览器
#Flutter 信息
- 构建版本。
- Flutter 3.3.4,Dart 2.18.2
- Android
- 目标 SDK
compileSdkVersion 33 minSdkVersion 23 targetSdkVersion 33
- 目标 SDK
#凭证
- 无
笔记
- Socket.io
- 平台
- 所有平台
- 版本匹配信息 [1]
- server(nodejs): "socket.io": "^2.4.1" - client(flutter): socket_io_client: ^1.0.1 | ^1.0.2 - 版本匹配信息 [2]
- server(nodejs): "socket.io": "^4.5.3" - client(flutter): socket_io_client: ^2.0.0
- 平台
- WebRTC
- 支持平台
- 所有平台
- 支持平台
参考
-
Socket.io
-
WebRTC
- 文章 | 文档
- https://mdn.org.cn/en-US/docs/Web/API/MediaDevices/getUserMedia
- https://bloggeek.me/webrtc-vs-zoom-video-quality/
- https://bloggeek.me/webrtcglossary/rtp/
- https://webrtchacks.com/zoom-avoids-using-webrtc/
- https://stackoverflow.com/questions/56944864/can-we-remove-and-add-audio-stream-dynamically-in-webrtc-video-call-without-rene
- https://stackoverflow.com/questions/64012898/how-to-completely-turn-off-camera-on-mediastream-javascript
- 问题
- flutter-webrtc/flutter-webrtc#938 windows rtc
- flutter-webrtc/flutter-webrtc#436 关闭连接
- 媒体流、静音、停止摄像头
- https://stackoverflow.com/questions/63666576/how-restart-a-closed-video-track-stopped-using-userstream-getvideotracks0 - https://stackoverflow.com/questions/57563002/do-cloned-streams-from-mediastreamdestination-are-still-somehow-bound-to-this-au - https://stackoverflow.com/questions/72857922/replace-webrtc-track-of-different-kind-without-renegotiations - https://stackoverflow.com/questions/41309682/check-if-selected-microphone-is-muted-or-not-with-web-audio-api/41309852#41309852 - https://stackoverflow.com/questions/56944864/can-we-remove-and-add-audio-stream-dynamically-in-webrtc-video-call-without-rene - https://stackoverflow.com/questions/39831238/webrtc-how-to-change-the-audio-track-for-a-existing-stream - https://stackoverflow.com/questions/64012898/how-to-completely-turn-off-camera-on-mediastream-javascript
- 文章 | 文档
-
Flutter 代码