Skip to content

[Studio Recorder] Long recording sessions have delayed updates, screenshot degradation, and slow finalization #2935

Description

@pengal

What problem does this feature solve?

在 Studio Recorder 录制场景中,随着操作次数和截图数量增加,录制链路会逐渐出现响应延迟、截图异常和处理时间过长等问题,影响录制结果的完整性与可用性。

What does the proposed API look like?

问题表现

阶段 问题表现
录制过程 连续操作时 Timeline 更新滞后,事件可能延迟或批量出现
录制过程 Timeline 截图可能与操作时看到的预览画面不一致
长录制 约 20 次操作后,部分步骤可能退化为只记录 click 坐标
停止录制 点击 Stop 后长时间无响应
生成与下载 点击 Download 后保存对话框长时间不出现,界面没有进度反馈

复现步骤

  1. 启动 Studio 并连接目标设备或页面。
  2. 开始录制。
  3. 连续执行至少 25~30 次可区分的点击或输入操作。
  4. 观察预览画面、Timeline 更新时间及每一步的截图和描述。
  5. 在 Timeline 尚未完全更新时点击 Stop。
  6. 完成 Generate 后点击 Download。

实际结果

  • Timeline 无法随操作实时更新。
  • 部分步骤的截图与操作时预览不匹配。
  • 长录制后可能只保留点击坐标,不再生成具体元素描述。
  • Stop 需要等待较长时间才能完成。
  • Download 在保存对话框出现前没有明确反馈。

预期结果

  • 每次操作都能及时出现在 Timeline 中,并显示当前处理状态。
  • 操作步骤与操作时的预览截图准确对应。
  • 长录制过程中步骤和元素描述保持完整;发生降级时明确提示原因。
  • Stop 可以快速结束录制,剩余处理在后台可见地完成。
  • Download 点击后立即显示导出状态和进度。

原因分析

上述表现来自同一录制链路中的多项累积问题:

  1. Recorder 事件严格串行处理,每个操作还需要等待截图和页面状态采集,连续操作会形成队列积压。
  2. Studio 每 500ms 轮询一次事件,进一步放大 Timeline 延迟。
  3. 操作与预览截图没有稳定的事务绑定,截图采集时点可能晚于实际操作。
  4. 单 Session 截图资产上限为 128MiB,高分辨率截图可能在约 20~25 次操作后触顶,导致后续语义描述退化。
  5. Generate 和 Download 默认最多使用 20 张截图,超出部分会被静默裁剪。
  6. Stop 会串联等待截图队列、事件拉取、AI 描述、持久化和元数据生成。
  7. Download 在 Renderer 中串行读取截图并生成完整 Base64 ZIP,完成后才打开保存对话框。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions