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>

结果展示

点击开始录制

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

点击停止录屏

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

相关推荐
南雨北斗16 分钟前
vue3项目表单验证 input 添加高亮样式
前端
:-)29 分钟前
idea中的vue文件没有高亮显示
前端·javascript·vue.js·ecmascript·intellij-idea
AI服务老曹30 分钟前
水位识别算法接入AI视频分析平台全流程与误报优化指南(附接口字段与排查表)
人工智能·算法·音视频
IPdodo_31 分钟前
2026年AI 数据采集代理 IP 选型:成功率、并发、轮换与成本评估
前端·网络·人工智能·chrome·python·http·网络调试
≮傷£≯√38 分钟前
ffmpeg 2个图片合并为视频
ffmpeg·音视频
计算机魔术师39 分钟前
AI问诊5秒出结果,医生反而更忙了
前端
郭邯40 分钟前
从需求到上线:我用 AI 辅助开发了一个在线倒计时器
前端
Damai1 小时前
Next.js 切换动态路由后,为什么页面还保留着上一个分类的数据?
前端·react.js
程序员鱼皮1 小时前
爆火的《牛来》模型正式发布!DeepSeek 的排名又下降了。。
前端·后端·ai编程