You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中MediaRecorder无法捕获Konva Canvas更新内容的问题求助

React中MediaRecorder无法捕获Konva Canvas更新内容的问题求助

我正在用react-konva构建一个简易视频制作工具,通过操作Konva画布并使用MediaRecorder来录制内容。我想实现一个简单的字幕功能——按顺序显示一组字符串,每个字幕之间间隔1.5秒(流程是:开始录制 → 切换所有字幕 → 停止录制)。

我已经完成了功能开发,但遇到了一个奇怪的问题:

  • 录制的视频只有静态背景和第一个字幕,时长也很短(约1秒)。
  • 但如果我在录制过程中手动用鼠标拖动文本,录制就完全正常了!

问题复现步骤

我做了一个可复现的示例:

  1. 点击开始录制,等待字幕切换完成后下载视频。
  2. 再试一次,但这次录制时用鼠标拖动文本——视频就能正常录制所有内容!

我已尝试的解决方案

为了让画布更新能同步到MediaStream,我试过这些方法:

  • 调用clearCache()、draw()、batchDraw()方法
  • 触发dragstart、dragmove、dragend事件
  • 每次字幕更新后强制让元素位置微调(node.x(node.x() + 1))
  • 每次字幕更新后用toDataURL()把画布保存为图片(保存的图片里能看到正确的字幕,但录制的视频还是没有更新后的内容)

这些方法都没用。我搞不懂为什么手动拖动文本就能正常录制,但程序化更新却不行。

有没有人能帮我分析下原因,或者告诉我怎么确保所有字幕变化都能被正确录制?

备注:内容来源于stack exchange,提问作者Matija Špeletić

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 11:22:58