1.9 KiB
1.9 KiB
本地录制修复 - 快速参考
🔍 问题
本地录制总是失败,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
原因:录制启动太晚或视频流无效 检查:
// 控制台执行
document.querySelectorAll('video').forEach((v, i) => {
console.log(`Video ${i}:`, v.readyState, v.srcObject)
})
问题:Blob 为 null
原因:通话时间太短(< 2 秒) 解决:保持通话至少 5 秒
问题:录制启动失败
原因:找不到视频元素 检查:是否看到 "未找到视频元素" 日志
📝 修改的文件
admin/src/components/chat-dialog/index.vueadmin/src/utils/call-local-recorder.ts
🔗 详细文档
LOCAL_RECORDING_DEBUG_GUIDE.md- 完整调试指南RECORDING_FIX_SUMMARY.md- 修复总结admin/test-local-recording.html- 测试工具
💡 测试建议
- 清除浏览器缓存
- 打开控制台(F12)
- 发起视频通话
- 保持通话 5 秒以上
- 正常挂断
- 检查日志和录制结果