// ==UserScript== // @name 录屏 // @namespace arale // @version 0.1 // @description 代码是网上拿来的,用作自己使用 // @author Gj // @match *://*/* // @icon https://www.google.com/s2/favicons?sz=64&domain=0.1 // @grant none // @license MIT // @downloadURL none // ==/UserScript== (function() { 'use strict'; const body = document.querySelector("body") // 创建一个button const btn = document.createElement('button') btn.innerText = '开始录制' btn.style.cssText = ` position: fixed; z-index: 999999; top: 10px; left: 10px; background-color: #d9534f; border-color: #d43f3a; border: none; padding: 4px 5px; border-radius: 5px; color: #fff; cursor: pointer; font-size: 12px;` body.appendChild(btn) btn.addEventListener("click", async function () { let stream = await navigator.mediaDevices.getDisplayMedia({ video: true }) // 需要更好的浏览器支持 const mime = MediaRecorder.isTypeSupported("video/webm; codecs=vp9") ? "video/webm; codecs=vp9" : "video/webm" let mediaRecorder = new MediaRecorder(stream, { mimeType: mime }) let chunks = [] mediaRecorder.addEventListener('dataavailable', function (e) { chunks.push(e.data) }) mediaRecorder.addEventListener('stop', function () { let blob = new Blob(chunks, { type: chunks[0].type }) let url = URL.createObjectURL(blob) let a = document.createElement('a') a.href = url a.download = `video_${Date.now()}.mp4` a.click() }) // 必须手动启动 mediaRecorder.start() }) })();