日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

webrtc 全屏截图

發布時間:2024/3/24 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 webrtc 全屏截图 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文鏈接: webrtc 全屏截圖

上一篇: webgl 學習小結 彩色小立方體

下一篇: webgl 貝塞爾多彩線

通過共享屏幕, 將屏幕輸出到video中, 然后在canvas中繪制video, 進行截圖

優點: 方便, 對于全屏截圖來說十分精確.

缺點: 需要授權, 且不能截取元素, 長圖拼接需要自己手動實現

<template><div class="flex-row"><div>web-rtc</div><video id="video" src=""></video><el-button @click="capture">capture</el-button><el-button @click="stop">stop</el-button><el-button @click="snapshot">snapshot</el-button><canvas id="canvas"></canvas></div> </template><script lang="ts" setup> import { onMounted } from "vue"; import { downloadUrl } from "../utils"; // https://www.webrtc-experiment.com/getDisplayMedia/ let video: HTMLVideoElement; let canvas: HTMLCanvasElement; let stream: any; const snapshot = () => {canvas.width = video.clientWidth;canvas.height = video.clientHeight;console.log("snapshot", video.clientWidth, video.clientHeight);const ctx = canvas.getContext("2d")!;ctx.drawImage(video, 0, 0);const url = canvas.toDataURL();console.log("url", url);downloadUrl(url, "snapshot.png"); }; const capture = async () => {// getDisplayMedia無法同時采集音頻stream = await navigator.mediaDevices.getDisplayMedia({video: true,audio: false,cursor: "motain", // alwayslogicalSurface: false, // 設置是否包含所選屏幕外區域的一些信息});// .getUserMedia({ video: true, audio: false })video.srcObject = stream;video.play(); }; const stop = () => {console.log("stop", stream, video.srcObject);let tracks = video.srcObject.getTracks();tracks.forEach((track: any) => track.stop());video.srcObject = null; }; onMounted(() => {video = document.getElementById("video") as HTMLVideoElement;canvas = document.getElementById("canvas") as HTMLCanvasElement; }); </script><style></style>

總結

以上是生活随笔為你收集整理的webrtc 全屏截图的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。