vue3 vite 前端录制浏览器界面视频并保存下载

1、首先需要安装

复制代码
npm install recordrtc

2、在App.vue中作如下修改

js 复制代码
<template>
  <div>
    <button @click="startRecording">开始录屏</button>
    <button @click="stopRecording" v-if="isRecording">停止录屏</button>
    <button v-if="videoBlob" @click="downloadVideo">下载视频</button>
  </div>
</template>
<script setup>
import { ref } from 'vue';
import RecordRTC from 'recordrtc';

const isRecording = ref(false);
const recorder = ref(null);
const videoBlob = ref(null);

const startRecording = async () => {
  try {
    const stream = await navigator.mediaDevices.getDisplayMedia({ video: true });
    recorder.value = new RecordRTC(stream, { type: 'video' });
    recorder.value.startRecording();
    isRecording.value = true;
  } catch (error) {
    console.error('无法获取屏幕媒体流', error);
  }
};
const downloadVideo = () => {
  if (videoBlob.value) {
    const url = URL.createObjectURL(videoBlob.value);
    const link = document.createElement('a');
    link.href = url;
    link.setAttribute('download', 'screen-recording.webm'); // 可以更改文件类型和名称
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
  }
};
const stopRecording = () => {
  if (recorder.value) {
    recorder.value.stopRecording(() => {
      videoBlob.value = recorder.value.getBlob();
      console.log('视频录制完成', videoBlob.value);
      isRecording.value = false;
    });
  }
};
</script>

<style scoped>
</style>

结果展示

点击开始录制

在弹出的窗口中选择整个屏幕 并选中整个屏幕,点击分享

点击停止录屏

点击下载视频,即可在浏览器下载那看到录播的视频

相关推荐
AlienZHOU13 小时前
AI Coding 时代下,我的技术面试实践分享
前端·后端·面试
美狐美颜sdk15 小时前
直播APP开发技术栈详解:视频美颜SDK、人脸识别与实时渲染
android·人工智能·音视频·美颜sdk·直播美颜sdk
Captaincc16 小时前
AI用量v0.1.11更新发布 新增 jusage doctor 诊断指令 托盘展示token 和余额 新增 AutoClaw 支持
前端·后端·vibecoding
计算机魔术师17 小时前
德国Wiki被黑后两周,OpenAI终于把模型失控的账本摊开了
前端
kyriewen18 小时前
我让 AI 当面试官面了我一轮:第 3 个追问我就卡住了(附 10 道追问清单)
前端·面试·ai编程
IT_陈寒18 小时前
Python的GIL把我坑惨了,多线程跑得比单线程还慢
前端·人工智能·后端
前端snow18 小时前
ai agent --- 多agent框架之图编排引擎-langgraph
前端
竹林81818 小时前
OmniPic Studio v3.2.1 核心技术架构与全平台发版解析文档
前端·浏览器
JamesZhang8007818 小时前
页面内存只涨不跌? 一次泄漏排查, 牵出 WeakMap 的诞生
前端
Z小明18 小时前
第 6 章 组件进阶
前端·vue.js