Checkpoint: v4.0 media service, compose deploy, and verified docs
这个提交包含在:
44
docs/frontend-recording.md
普通文件
44
docs/frontend-recording.md
普通文件
@@ -0,0 +1,44 @@
|
||||
# Frontend Recording Flow
|
||||
|
||||
## UX goals
|
||||
|
||||
- Chrome 优先的低流量录制
|
||||
- 录制和实时推流并行
|
||||
- 断线后尽量自动恢复
|
||||
- 移动端可直接使用
|
||||
|
||||
## Browser pipeline
|
||||
|
||||
1. 用户启动摄像头预览
|
||||
2. 点击开始录制时创建媒体会话
|
||||
3. 复用已有预览流,避免重复申请摄像头
|
||||
4. 同一条 `MediaStream` 同时接入:
|
||||
- `MediaRecorder`
|
||||
- `RTCPeerConnection`
|
||||
5. 每 60 秒主动 `requestData()` 形成一个上传分段
|
||||
6. 画面抽样比较生成自动 marker
|
||||
7. 结束录制后 flush 队列并调用 finalize
|
||||
8. 轮询归档状态,完成后把结果注册进视频库
|
||||
|
||||
## Mobile adaptation
|
||||
|
||||
- 使用安全区样式 `env(safe-area-inset-*)`
|
||||
- 底部固定导航
|
||||
- 最小点击区域 `44px`
|
||||
- 横屏时保留尽量大的预览画面
|
||||
- 录制页容器使用 `overscroll-behavior-y: contain`,避免下拉刷新干扰
|
||||
|
||||
## Reconnect behavior
|
||||
|
||||
- 摄像头 track 结束时触发重连
|
||||
- 主动停止摄像头时使用 suppression 标志,避免误判为故障
|
||||
- 重连过程:
|
||||
- 停止 recorder
|
||||
- 保留已上传和待上传分段
|
||||
- 重新获取摄像头
|
||||
- 重建 WebRTC 连接
|
||||
- 恢复 recorder
|
||||
|
||||
## Video library sync
|
||||
|
||||
归档完成后前端调用 `video.registerExternal`,把回放资源登记到现有视频库中,避免重写整个视频管理模块。
|
||||
在新工单中引用
屏蔽一个用户