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

如何使用JavaScript通过MediaRecorder将浏览器录屏文件存储到Firebase Storage

问题根因

你上传失败的核心原因是main.js中调用Firebase Storage的put方法时,传入了未定义的file变量,没有正确传入已经生成好的录屏completeBlob对象,不需要额外转arraybuffer、uint8array格式,直接传Blob就可以正常上传。

修改方案

直接替换main.js中onstop回调内的上传逻辑即可:

var metadata = {
  contentType: 'video/webm',
};

// 直接传入已生成的录屏Blob对象
fbStorageChildRef.put(completeBlob, metadata).then((snapshot) => {
  console.log(`上传成功!快照数据 : ${snapshot}`);
  chunks = [];
}).catch(err => {
  // 新增错误捕获,方便后续排查问题
  console.error('上传失败错误信息:', err)
});

额外优化建议

  • 当前存储引用固定为videos/videofile.webm,每次上传都会覆盖之前的文件,可通过时间戳生成唯一文件名避免覆盖:
    // 每次录制生成独立的存储引用
    const fbStorageChildRef = fbStorageRef.child(`videos/${Date.now()}.webm`);
    
  • 确认Firebase Storage安全规则配置正确,测试阶段可临时放开权限验证功能,生产环境务必按业务需求收紧规则。

内容的提问来源于stack exchange,提问作者Yash Jain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:45:10