从事Android开发,应该或多或少都遇到过要将手机屏幕同步到电脑上的需求,例如做各种会议演示等。通常我们都借助一些稳定性和口碑不错的第三方软件来实现投屏,成熟的软件,投屏通常只是它众多功能中的一个。

我们抛开其他功能不谈,如果只需要实现手机屏幕能实时同步到电脑上播放,该怎么做呢。主要思路有两步:

  1. 录制手机屏幕内容;
  2. 将录制的内容发送到电脑上。

录制屏幕内容,需要用到系统的MediaProjectionManagerMediaProjection类和相关API,还需要用到MediaCodec将屏幕投射内容加工成有效的视频格式;
至于发送内容,可以是USB有线方式,但为了使用方便,无线传输是更好的,解决方案可以是当前流行的视频流。

这里推荐一个我在学习过程中了解到的开源流媒体服务框架 EasyDarwin,再配合上同样来自EasyDarwin开源团队的推流框架 EasyPusher,很容易就能实现将手机屏幕同步到PC播放。
EasyPusher-Android 库甚至都已经基本实现了手机摄像头推流和屏幕推流。可以在其基础上修改定制即可,是一个非常不错的学习资源。

我也尝试做了一个将手机屏幕实时同步到PC播放的demo,可以查看。
https://github.com/ChinaStyle812/ScreenSync

Android端使用rtsp推流实现,局域网本地运行了EasyDarwin开源流媒体服务器,PC端用VLC客户端输入rtsp推流地址即可观看Android客户端屏幕画面。
Android端使用的rtsp推流库为: EasyPusher-Android。

VLC观看演示:

Android手机投屏初探相关推荐

  1. Android手机投屏win10

    Android手机投屏win10 win10-操作系统 win10-投影到此电脑 win10-选择所有位置都可用 win10-记住你的win10名称 Android-更多连接方式 Android-无线 ...

  2. 详解如何将 Android 手机投屏在 Ubuntu 上

    你知道如何将Android手机投屏到Linux系统吗?本文就以 Scrcpy 软件为例,来讲解一下如何将Android手机投屏到Ubuntu系统. 1 Scrcpy 介绍 首先,我们来认识一下Scrc ...

  3. 如何将 Android 手机投屏在 Ubuntu/LinuxMint/Debian 上

    Scrcpy 介绍 首先,我们来认识一下Scrcpy. Scrcpy是一个开源的命令行工具软件,被设计用于使计算机用户能通过android adb或通过usb数据线控制其Android设备,支持通过鼠 ...

  4. ADB投屏_如何将 Android 手机投屏在 Ubuntu/LinuxMint/Debian 上

    你知道如何将 Android 手机投屏到Linux系统吗?本文就以 Scrcpy 软件为例,来讲解一下如何将Android手机投屏到Ubuntu系统. Scrcpy 介绍 首先,我们来认识一下Scrc ...

  5. Android手机投屏

    作为一名Android开发者,很多次有给客户现场演示APP的工作需求,尝试过很多手机投屏的方法比如使用各种厂家的手机助手(实际测试华为的手机助手效果较好,整体上金山手机助手.应用宝等效果类似投屏的反应 ...

  6. 数字电视至显示android,手机投屏到电视的5种方法 看完才知道原来这么简单!

    原标题:手机投屏到电视的5种方法 看完才知道原来这么简单! 在我们的日常生活中,经常会遇到一些场景,让我们想把手机里的照片.视频.文档等内容分享给身边的朋友.不过从体验上讲,手机这块"小屏幕 ...

  7. android手机投屏电视用什么,华为手机哪一款最好用 华为手机投屏到电视的5种方法...

    华为手机哪一款最好用 华为手机投屏到电视的5种方法 2021-02-23 16:26:12 0点赞 0收藏 0评论 [ 一.华为手机哪一款最好用 1.华为P20Pro 配置:CPU麒麟970.内存6G ...

  8. Android手机投屏后没有声音,乐播投屏电视没有声音怎么办_乐播投屏电视没有声音手机有声音解决办法_3DM手游...

    乐播投屏是一个非常不错的投屏软件,操作使用简单,最近不少小伙伴都在用.但是在使用乐播投屏的时候,有很多小伙伴出现了电视没有声音手机有声音的情况,这是怎么回事呢?我们一起来看看乐播投屏电视没有声音的解决 ...

  9. 使用互传APP实现Android手机投屏到windows电脑

    目前自己实现的条件: 1.自用VIVO品牌的手机(每个,手机品牌的自带互传或者投屏APP不一样,VIVO叫做"互传APP".) 2.PC(自用win11,应该XP.win7/10都 ...

最新文章

  1. linux php环境升级,php5.6升级到php7.1.10(Linux环境)
  2. python出现typeerror原因是_Python 文件添加列表数据后TypeError原因
  3. 实战!我用“大白鲨”让你看见 TCP
  4. oracle中key,mysql中的key在oracle中是什么
  5. 有空间感的图片环形滚动代码
  6. php Reportico 开源报表
  7. Kubernetes中的nodePort,targetPort,port的区别和意义
  8. 本年度最成功科技IPO企业之一:Twilio股票一月暴涨167%
  9. 一个30岁男人转型码农的平凡之路
  10. Clustering Coefficient
  11. GitHub Universe 2021|MS Reactor 邀你共聚年度盛会
  12. 【人工智能初级系列(一)】科学计算库 Numpy
  13. java rmi接口 超时设置_Spring RMI客户端读超时设置 | 学步园
  14. linux文件类型为目录,在Linux系统中,基本的文件类型分为()文件,目录文件和文件, 所有的I/..._考试资料网...
  15. c语言环境变量win10,设置系统环境变量是干嘛的?教你在哪设置win10环境变量
  16. C# string类型转换为float精度问题
  17. 关于SSH使用的一些经验
  18. laravel-admin使用教程
  19. 点赋科技:如何提高淘宝店铺的流量?
  20. Bron-kerbosch算法-求图的最大团,极大团

热门文章

  1. MySQL设置自增初始值和步长
  2. python sort函数
  3. quartz 参数说明
  4. django基于python的高校教室管理系统--python-计算机毕业设计
  5. DNS域名解析服务--Named服务
  6. 浏览器无法访问localhost
  7. 树莓派做网络调试陪试机
  8. 如何修改图片的dpi?教你一招快速修改照片dpi的方法
  9. LNK1104:无法打开文件\.obj
  10. C# 获得本机IP、端口等信息地址以及服务器IP信息