原文链接: 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 全屏截图相关推荐

  1. WebRTC框架中的硬件加速

    WebRTC框架中的硬件加速 典型缓冲流量 应用程序和单元测试设置 重要方法调用 WebRTC软件包 局限性 WebRTC是一个免费的开源项目,可为浏览器和移动应用程序提供实时通信功能. WebRTC ...

  2. webrtc android ndk,webrtc 针对 android 平台的编译和运行

    1环境准备 官方说明: 针对android构建需要Ubuntu64位机器,虚拟机也行. 1.1安装SVN 直接用apt-get安装 sudoapt-getinstallsubversion 1.2安装 ...

  3. android实现长截屏,Android实现全屏截图或长截屏功能

    本文实例为大家分享了Android实现全屏截图或长截屏功能的具体代码,供大家参考,具体内容如下 全屏截图: /** * 传入的activity是要截屏的activity */ public stati ...

  4. 展望2018:WebRTC大规模商用元年

    历经6年长跑,WebRTC终于在去年迎来了1.0标准(candidate recommendation)的发布,而它也将成为2018年视频通信商业应用场景爆发的主要技术推动力.一站式WebRTC通信技 ...

  5. 使用WebRTC搭建前端视频聊天室——数据通道篇

    转自 使用WebRTC搭建前端视频聊天室--数据通道篇 在两个浏览器中,为聊天.游戏.或是文件传输等需求发送信息是十分复杂的.通常情况下,我们需要建立一台服务器来转发数据,当然规模比较大的情况下,会扩 ...

  6. Android IOS WebRTC 音视频开发总结(三八)-- tx help

    Android IOS WebRTC 音视频开发总结(三八)-- tx help 本文主要介绍帮一个程序员解决webrtc疑问的过程,文章来自博客园RTC.Blacker,支持原创,转载请说明出处(w ...

  7. WebRTC的拥塞控制技术转

    转载地址:http://www.jianshu.com/p/9061b6d0a901 1. 概述 对于共享网络资源的各类应用来说,拥塞控制技术的使用有利于提高带宽利用率,同时也使得终端用户在使用网络时 ...

  8. Android IOS WebRTC 音视频开发总结(七四)-- WebRTC开源5周年了,Google怎么看?

    本文最早发表在我们的微信公众号上(微信ID:blackerteam),支持原创,详见这里, 2016年6月9日是WebRTC开源5周年的日子,Google WebRTC负责人Harald在社区里面写了 ...

  9. WebRTC内置debug工具,详细参数解读

    为了确保这篇文章所写内容尽可能的准确,我决定请来Philipp Hancke来作为此篇文章的共同作者. 当你想要找到你WebRTC产品中的问题时,webrtc-internals是一个非常棒的工具,因 ...

最新文章

  1. 新建silverlight项目提示未将对象设置到实例解决方案
  2. ADB命令行控制界面开关
  3. 洛谷 P3157 [CQOI2011]动态逆序对 | CDQ分治
  4. 第四次上课 PPT作业
  5. MySQL 4到5的快速升级
  6. 小程序保存base64类型图片和普通图片实例
  7. 用JAVA制作小游戏——飞机大战(三)
  8. 【clickhouse】clickhouse Exception: Table is in readonly mode
  9. python中从键盘输入的代码_python如何从键盘获取输入实例
  10. .net导出为powerpoint的一些参考代码
  11. 吴裕雄 02-mysql PHP语法
  12. 微信小程序使用IconFont彩色图标
  13. adjacent_diffenerce
  14. OOM Killer机制
  15. js 无害化_道德第一无害
  16. 《乡村爱情11》将播 除了刘能赵四,竟还有狄龙
  17. QT5.14.2编译安装QWT
  18. Groupon团宝网:合作和并购的价值何在?
  19. 计算机对于汉语言文学专业的关系,关于学习古代汉语的心得
  20. 课题成果,发表省级论文《开展数学阅读 提升数学素养》

热门文章

  1. 斯尔福 实验室 平面布局原则
  2. 键盘事件监听_键盘事件
  3. java多线程查询_java多线程查询
  4. C++之static,静态变量
  5. cad连接不同线段的端点_【CAD图形】】为什么CAD连续的图形无法连接成完整的多段线...
  6. BEVDistill
  7. 微支付基础:零确认支付及简易支付模型
  8. WIFI大师分销系统小程序源码+流量主+详细搭建视频教程
  9. IP2726中文数据手册
  10. 【python】用emoji表情生成文字