js屏幕录制分享功能

javascript 复制代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <button>共享屏幕</button>
    <script>
      const button = document.querySelector("button");
      button.addEventListener("click", async () => {
        const stream = await navigator.mediaDevices.getDisplayMedia({
          video: true,
        });

        const mime = MediaRecorder.isTypeSupported("video/webm;codecs=h264")
          ? "video/webm;codecs=h264"
          : "video/webm";

        const mediaRecorder = new MediaRecorder(stream, { mimeType: mime });

        const chunks = [];
        mediaRecorder.addEventListener("dataavailable", function (e) {
          chunks.push(e.data);
        });

        mediaRecorder.addEventListener("stop", () => {
          const blob = new Blob(chunks, { type: chunks[0].type });
          const url = URL.createObjectURL(blob);
          const a = document.createElement("a");
          a.href = url;
          a.download = "video.webm";
          a.click();
        });
        mediaRecorder.start();
      });
    </script>
  </body>
</html>
相关推荐
2301_76444133几秒前
基于python与Streamlit构建的卫星数据多维可视化分析
开发语言·python·信息可视化
say_fall2 分钟前
新手避坑指南:C++ 引用、内联函数与 nullptr 全解析
android·开发语言·c++
郝学胜-神的一滴2 分钟前
深入浅出:理解OpenGL的标准化设备坐标(NDC)
开发语言·程序人生·图形渲染
中文很快乐3 分钟前
java后端好习惯---新手养成记
java·开发语言·开发好习惯·踩坑日志·新手养成
风华同学3 分钟前
【系统移植篇】系统烧写
java·开发语言·前端
by__csdn5 分钟前
JavaScript性能优化实战:异步与延迟加载全方位攻略
开发语言·前端·javascript·vue.js·react.js·typescript·ecmascript
阿里嘎多学长6 分钟前
2025-12-11 GitHub 热点项目精选
开发语言·程序员·github·代码托管
diudiu962811 分钟前
Logback使用指南
java·开发语言·spring boot·后端·spring·logback
程序喵大人13 分钟前
记录va_list重复使用导致的crash
开发语言·c++
2501_9307077815 分钟前
如何使用C#代码将多张图片整合为一个PDF文档
开发语言·pdf·c#