Files
zyt/QUICK_FIX_REFERENCE.md
T
2026-03-24 16:32:56 +08:00

1.9 KiB
Raw Blame History

本地录制修复 - 快速参考

🔍 问题

本地录制总是失败,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 秒

问题:录制启动失败

原因:找不到视频元素 检查:是否看到 "未找到视频元素" 日志

📝 修改的文件

  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. 检查日志和录制结果