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>
相关推荐
lly20240610 分钟前
AJAX JSON 实例
开发语言
QiZhang | UESTC21 分钟前
JAVA算法练习题day27
java·开发语言·c++·算法·leetcode·hot100
坚持就完事了23 分钟前
2-C语言中的数据类型
c语言·开发语言
ss2731 小时前
手写MyBatis第96弹:异常断点精准捕获MyBatis深层BUG
java·开发语言·bug·mybatis
Stanford_11061 小时前
关于嵌入式硬件需要了解的基础知识
开发语言·c++·嵌入式硬件·微信小程序·微信公众平台·twitter·微信开放平台
星秀日1 小时前
JavaWeb--Ajax
前端·javascript·ajax
白水先森1 小时前
Python 运算符与列表(list)
java·开发语言
小政同学2 小时前
【Python】小练习-考察变量作用域问题
开发语言·python
嫂子的姐夫2 小时前
10-七麦js扣代码
前端·javascript·爬虫·python·node.js·网络爬虫
是那盏灯塔2 小时前
16.C++三大重要特性之多态
开发语言·c++