当前位置: 首页 > news >正文

Android 录屏 实现

https://lixiaogang03.github.io/2021/11/02/Android-%E5%BD%95%E5%B1%8F/

https://xie.infoq.cn/article/dd40cd5d753c896225063f696

视频地址:

https://time.geekbang.org/dailylesson/detail/100056832

概述

在视频会议、线上课堂、游戏直播等场景下,屏幕共享是一个最常被用到的功能。要实现对屏幕画面的实时共享,端到端主要有这几个步骤:录屏采集、视频编码、实时传输、视频解码、视频渲染。

一般来说,实时屏幕共享时,共享发起端以固定采样频率(一般 8 - 15 帧)抓取到屏幕中指定源的画面(包括指定屏幕、指定区域、指定程序等),经过视频编码压缩(选择保持文本/图形边缘信息不失真的方案)后,在实时网络上以相应的帧率分发。

因此,录屏采集是实现实时屏幕共享的基础。即构作为专业的音视频云服务商,对于实时屏幕共享有一套完整的流程体系和 API 封装,让开发者可以更加方便快捷地拥有录屏直播的能力。

下面我们将介绍基于不同端,实现录屏采集的方法。本篇为您详解 Android 端录屏采集实现教程。

原理

在分享如何实现 Android 系统录屏采集前,我们先来看看其背后的原理。

Android 在 4.4 版本前要实现屏幕录制必须获取到 root 权限,但目前大部分设备的系统版本都高于 4.4,因此这种情况在此就不作赘述。

在 5.0 及以上版本,我们可以利用系统提供的 MediaProjection 和 MediaProjectionManager 进行屏幕录制,可以不需要获取 root 权限,但会弹窗获取权限,需要用户同意才行。

那么在 Android5.0 及以上版本,我们使用 MedaProjection 是如何把屏幕的数据录制下来呢?

这里我们就要说到两个“助攻的小伙伴”了——Surface 和 VirtualDisplay。

http://www.lryc.cn/news/38948.html

相关文章:

  • 【CSAPP】家庭作业2.55~2.76
  • Python操作MySQL数据库详细案例
  • MicroBlaze系列教程(8):AXI_CAN的使用
  • 网络安全领域中八大类CISP证书
  • stm32学习笔记-5EXIT外部中断
  • MySQL Workbench 图形化界面工具
  • 雪花算法(SnowFlake)
  • Linux防火墙
  • 网络安全系列-四十七: IP协议号大全
  • HTTP协议格式以及Fiddler用法
  • 自动写代码?别闹了!
  • 项目心得--网约车
  • 【二叉树广度优先遍历和深度优先遍历】
  • Spring Cloud微服务架构必备技术
  • TCP三次握手与四次挥手(一次明白)
  • pyside6@Mouse events实例@QApplication重叠导致的报错@keyboardInterrupt
  • 订单30分钟未支付自动取消怎么实现?
  • < 开源项目框架:推荐几个开箱即用的开源管理系统 - 让开发不再复杂 >
  • 内网渗透-基础环境
  • Go语言学习的第一天(对于Go学习的认识和工具选择及环境搭建)
  • C和C++到底有什么关系
  • 14个Python处理Excel的常用操作,非常好用
  • async/await 用法
  • 好意外,发现永久免费使用的云服务器
  • VSCode使用技巧,代码编写效率提升2倍以上!
  • SQL执行过程详解
  • 【物联网NodeJs-5天学习】第四天存储篇⑤ ——PM2,node.js应用进程管理器
  • 【C++学习】【STL】deque容器
  • 当 App 有了系统权限,真的可以为所欲为?
  • vue3.js的介绍