以前公号发表的文章,现在共享给小伙伴们哈~~~
哈喽,大家好!我是可爱的源小北
!
最近,我的一个很要好的朋友,跟我说她男友这段时间不知道忙什么,把家里的电脑、笔记本什么都用来实验投屏,动不动就把手机的内容投屏到她的笔记本、电脑上,搞得她没法好好追剧了,已经为此埋怨几次了。
小北一听来了兴趣,找到他问了一下,原来是他在学习别人的一个开源项目—跨平台安卓实时投屏软件。我跟他要来了项目地址,自己上手试了试,觉得值得向各位小伙伴们推荐!
项目介绍
该项目是一个音视频相关的Qt项目实战,采用C++语言开发,涉及Qt开发实际项目的完整流程。它是基于Qt FFMpeg OPENGL平台,实现了安卓手机实时投屏到电脑端,并通过自定义按键映射,实现电脑端键鼠控制安卓手机的功能,达到在电脑上通过键鼠控制玩手游的效果。
由于Qt的跨平台特性,该项目支持windows,linux,mac三大主流平台。
可以通过 USB / 网络连接Android设备,并进行显示和控制。无需root权限。目前有如下功能:
-
实时显示 Android 设备屏幕
-
实时键鼠控制Android设备
-
屏幕录制
-
截图
-
无线连接
-
多设备连接与群控
-
全屏显示
-
窗口置顶
-
安装 apk:拖拽apk到显示窗口即可安装
-
传输文件:拖拽文件到显示窗口即可发送文件到 Android 设备
-
后台录制:只录制屏幕,不显示界面
-
剪贴板同步: 在计算机和设备之间同步剪贴板:
Ctrl + c将设备剪贴板复制到计算机剪贴板;
Ctrl + Shift + v将计算机剪贴板复制到设备剪贴板;
Ctrl + v 将计算机剪贴板作为一系列文本事件发送到设备(不支持非ASCII字符)
-
同步设备扬声器声音到电脑(基于sndcpy,仅支持安卓10级以上,目前不推荐使用,可使用蓝牙连接替代)
它专注于:
-
精致 (仅显示设备屏幕)
-
性能 (30~60fps)
-
质量 (1920×1080以上)
-
低延迟 (35~70ms)
-
快速启动 (1s 内就可以看到第一帧图像)
-
非侵入性 (不在设备上安装任何软件)
下面是在三个平台的显示效果图:
项目要求
设备要求:
Android 设备至少需要 API 21(Android 5.0),并且确保启用ADB调试。
技术要求:
C++必须会。
网络编程必须了解:知道TCP协议,会用Socket。
Qt基础最好会,或者其他界面编程经验。要了解:
-
Qt多线程,多进程,自定义事件
-
网络编程
-
qss自定义界面
-
键盘鼠标事件处理
有音视频基础知识
-
FFMpeg解码h264为yuv
-
OPENGL基础
-
OPENGL渲染yuv
运行与界面
运行
在你的电脑上接入Android设备,然后运行程序,点击 一键USB连接 或者 一键WIFI连接.
无线连接步骤
-
将手机和电脑连接到同一局域网。
-
安卓手机端在开发者选项中打开 USB 调试。
-
通过 USB 连接安卓手机到电脑。
-
点击刷新设备,会看到有设备号更新出来。
-
点击获取设备 IP。
-
点击启动 adbd。
-
无线连接。
-
再次点击刷新设备,发现多出了一个 IP 地址开头的设备,选择这个设备。
-
启动服务。
备注:启动 adbd 以后无需继续连接 USB 线,以后连接断开都不再需要,除非 adbd 停止运行。
界面解释
-
启动配置:启动服务前的功能参数设置。
分别可以设置本地录制视频的比特率、分辨率、录制格式、录像保存路径等。
-
仅后台录制:启动服务不显示界面,只录制 Android 设备屏幕。
-
窗口置顶:Android 设备显示窗口置顶。
-
自动息屏:启动服务以后,自动关闭 Android 设备屏幕以节省电量。
-
使用 Reverse:服务启动模式,出现服务启动失败报错 "more than one device" 可以去掉这个勾选尝试连接。
-
刷新设备列表:刷新当前连接的设备。
-
启动服务:连接到 Android 设备。
-
停止服务:断开与 Android 设备的连接。
-
停止所有服务:断开所有已连接的 Android 设备。
-
获取设备ip:获取到 Android 设备的 IP 地址,更新到无线区域中,方便进行无线连接。
-
启动adbd:启动 Android 设备的 adbd 服务,无线连接之前,必须要启动。
-
无线连接:使用无线方式连接 Android 设备。
-
无线断开:断开无线方式连接的 Android 设备。
-
命令行:执行自定义 adb 命令(目前不支持阻塞命令,例如shell)。
有兴趣的小伙伴可以在文末查看获取项目的方法。
小北有话说
这个开源项目,非常适合作为一个实战项目,引导小伙伴们能够学习有关投屏的各种知识,作者很厚道地提供了各种相关资源方便大家下载研究和学习。大家可以通过对源代码学习和了解如何针对自己的实际需求进行定制。
程序员了不起读者交流群,交流包括但不限于技术,人生感悟、每日大事、人生大事、吹水、摸鱼,白嫖群主收集的资源等。
有想要加入的小伙伴,关注公号”程序员了不起“,回复:fff112 ,既可加入群聊,限时开放哦!
-
项目地址:https://gitee.com/Barryda/QtScrcpy
以上就是本次推荐的全部内容,我是源小北
,感谢各位的观看。