浏览器API实现屏幕录制并保存为文件

    const stream = await navigator.mediaDevices.getDisplayMedia({ video: true });
    const chunks = [];
    const rec = new MediaRecorder(stream, { mimeType: "video/webm" });
    // 录制并保存数据到chunks中
    rec.addEventListener("dataavailable", (e) => {
      if (e.data && e.data.size > 0) {
        chunks.push(e.data);
      }
    })
    // 停止录制并下载
    rec.addEventListener("stop", () => {
      const blob = new Blob(chunks, { type: "video/webm" });
      const url = URL.createObjectURL(blob);
      const a = document.createElement("a");
      a.href = url;
      const date = new Date();
      a.download = `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()} ${date.getHours()}:${date.getMinutes()}}.webm`;
      a.click();
      URL.revokeObjectURL(url);
    });
    // 开始录制
    rec.start();
posted @ 2025-04-29 14:03  谁凭花解语  阅读(24)  评论(0)    收藏  举报