新增功能
This commit is contained in:
@@ -0,0 +1,83 @@
|
||||
# 本地录制修复 - 快速参考
|
||||
|
||||
## 🔍 问题
|
||||
本地录制总是失败,blob 为空
|
||||
|
||||
## 🎯 根本原因
|
||||
录制启动太晚(1200ms),在对方挂断后才启动,此时 SDK 已销毁视频轨道
|
||||
|
||||
## ✅ 解决方案
|
||||
|
||||
### 1. 缩短启动延迟
|
||||
```
|
||||
1200ms → 500ms
|
||||
```
|
||||
|
||||
### 2. 快速重试
|
||||
```
|
||||
300ms 间隔,最多 10 次
|
||||
```
|
||||
|
||||
### 3. 立即停止录制
|
||||
```
|
||||
监听 USER_LEAVE 事件,立即调用 beginStopNow()
|
||||
```
|
||||
|
||||
### 4. 缩短停止延迟
|
||||
```
|
||||
300ms → 100ms
|
||||
```
|
||||
|
||||
## 📊 测试检查清单
|
||||
|
||||
### 启动阶段(接通后 1 秒内)
|
||||
- [ ] 看到 "尝试启动本地录制"
|
||||
- [ ] 看到 "视频元素已就绪"
|
||||
- [ ] 看到 "✅ 本地录制已成功启动"
|
||||
|
||||
### 录制阶段(每 250ms)
|
||||
- [ ] 看到 "收到数据块,大小: XXX"
|
||||
- [ ] 数据块数持续增加
|
||||
|
||||
### 停止阶段(挂断时)
|
||||
- [ ] 看到 "检测到通话结束事件"
|
||||
- [ ] 看到 "已收集数据块: X"(X > 0)
|
||||
- [ ] 看到 "生成 Blob: XXX bytes"(不是 null)
|
||||
- [ ] 看到 "本地录制已上传并关联到通话记录"
|
||||
|
||||
## 🚨 常见问题
|
||||
|
||||
### 问题:数据块数为 0
|
||||
**原因**:录制启动太晚或视频流无效
|
||||
**检查**:
|
||||
```javascript
|
||||
// 控制台执行
|
||||
document.querySelectorAll('video').forEach((v, i) => {
|
||||
console.log(`Video ${i}:`, v.readyState, v.srcObject)
|
||||
})
|
||||
```
|
||||
|
||||
### 问题:Blob 为 null
|
||||
**原因**:通话时间太短(< 2 秒)
|
||||
**解决**:保持通话至少 5 秒
|
||||
|
||||
### 问题:录制启动失败
|
||||
**原因**:找不到视频元素
|
||||
**检查**:是否看到 "未找到视频元素" 日志
|
||||
|
||||
## 📝 修改的文件
|
||||
1. `admin/src/components/chat-dialog/index.vue`
|
||||
2. `admin/src/utils/call-local-recorder.ts`
|
||||
|
||||
## 🔗 详细文档
|
||||
- `LOCAL_RECORDING_DEBUG_GUIDE.md` - 完整调试指南
|
||||
- `RECORDING_FIX_SUMMARY.md` - 修复总结
|
||||
- `admin/test-local-recording.html` - 测试工具
|
||||
|
||||
## 💡 测试建议
|
||||
1. 清除浏览器缓存
|
||||
2. 打开控制台(F12)
|
||||
3. 发起视频通话
|
||||
4. 保持通话 5 秒以上
|
||||
5. 正常挂断
|
||||
6. 检查日志和录制结果
|
||||
Reference in New Issue
Block a user