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

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.kler.cn/a/232.html

相关文章:

  • OpenCV 4.5至4.10版本更新概述
  • 利用大语言模型解决推理任务
  • 概率论与数理统计--期末
  • 基于SMT32U575RIT单片机-中断练习
  • nginx配置 - 资源参数配置(性能优化)
  • 【three.js】搭建环境
  • 【6G 新技术】6G数据面介绍
  • 最新!Windows 11 更新将整合 AI 技术
  • [闪存2.1] NAND FLASH特性串烧 | 不了解闪存特性,你能用好闪存产品吗?
  • ffmpeg将图片合成为视频常用参数介绍
  • Spring —— 初学 Spring, 理解控制反转
  • 一条sql执行很慢可能的原因,如何优化
  • 计算机网络概述
  • 使用Maven实现第一个Servlet程序
  • Python打包成exe,文件太大问题解决办法(比保姆级还保姆级)
  • 【无标题】
  • 【CSS】SVG实战入门,svg画曲线,svg简单动画上手入门
  • 【C++笔试强训】第三十一天
  • 改进YOLO系列 | CVPR2023最新Backbone | FasterNet 远超 ShuffleNet、MobileNet、MobileViT 等模型
  • MySQL数据库的基础语法总结(1)
  • 【2022-09-14】米哈游秋招笔试三道编程题
  • Web API之鼠标事件
  • 2023年BeijngCrypt勒索病毒家族最新变种之.halo勒索病毒
  • 嵌入式学习笔记——STM32的USART收发字符串及串口中断
  • echarts有滑块
  • 【24】Verilog进阶 - 序列检测2