QtScrcpy
QtScrcpy 可以通过 USB / 网络连接Android设备,并进行显示和控制。无需root权限。
同时支持 GNU/Linux ,Windows 和 MacOS 三大主流桌面平台。
完整代码下载地址:C++版Android实时投屏软件系统源码
它专注于:
- 精致 (仅显示设备屏幕)
- 性能 (30~60fps)
- 质量 (1920×1080以上)
- 低延迟 (35~70ms)
- 快速启动 (1s 内就可以看到第一帧图像)
- 非侵入性 (不在设备上安装任何软件)
自定义按键映射
可以根据需要,自己编写脚本将键盘按键映射为手机的触摸点击,编写规则在这里。
默认自带了针对和平精英手游和抖音进行键鼠映射的映射脚本,开启平精英手游后可以用键鼠像玩端游一样玩和平精英手游,开启抖音映射以后可以使用上下左右方向键模拟上下左右滑动,你也可以按照编写规则编写其他游戏的映射文件,默认按键映射如下:
这里有玩和平精英的视频演示
自定义按键映射操作方法如下:
- 编写自定义脚本放入 keymap 目录
- 点击刷新脚本,确保脚本可以被检测到
- 选择需要的脚本
- 连接手机并启动服务之后,点击应用脚本
- 按
~
(即脚本中定义的 SwitchKey)键切换为自定义映射模式即可启用 - 再次按~键切换为正常控制模式
- (对于和平精英等游戏)若想使用方向盘控制载具,记得在载具设置中设置为单摇杆模式
群控
你可以同时控制所有的手机
感谢
基于Genymobile的scrcpy项目进行复刻,重构,非常感谢。
比较
QtScrcpy 和 Scrcpy 区别如下:
关键点scrcpyQtScrcpy界面sdlqt视频解码ffmpegffmpeg视频渲染sdlopengl跨平台基础设施自己封装Qt编程语言CC++编程方式同步异步按键映射不支持自定义支持自定义按键映射编译方式Meson+GradleCMake
- 使用Qt可以非常容易的定制自己的界面
- 基于Qt的信号槽机制的异步编程提高性能
- 方便新手学习
- 增加多点触控支持
要求
Android 部分至少需要 API 21(Android 5.0)。
您要确保在 Android 设备上启用adb调试。
运行
在你的电脑上接入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)
功能
- 实时显示 Android 设备屏幕
- 实时键鼠控制Android设备
- 屏幕录制
- 截图
- 无线连接
- 多设备连接与群控
- 全屏显示
- 窗口置顶
- 安装 apk:拖拽apk到显示窗口即可安装
- 传输文件:拖拽文件到显示窗口即可发送文件到 Android 设备
- 后台录制:只录制屏幕,不显示界面
- 剪贴板同步: 在计算机和设备之间同步剪贴板: -
Ctrl + c
将设备剪贴板复制到计算机剪贴板;-Ctrl + Shift + v
将计算机剪贴板复制到设备剪贴板;-Ctrl + v
将计算机剪贴板作为一系列文本事件发送到设备(不支持非ASCII字符) - 同步设备扬声器声音到电脑(基于sndcpy,仅支持安卓10级以上,目前不推荐使用,可使用蓝牙连接替代)
快捷键
功能快捷键(Windows)快捷键 (macOS)切换全屏
Ctrl
f
Cmd
调整窗口大小为 1:1f
Ctrl
g
Cmd
调整窗口大小去除黑边g
Ctrl
| 左键双击w
Cmd
| 左键双击点击w
主页
Ctrl
| 点击鼠标中键h
Ctrl
| 点击鼠标中键点击h
BACK
Ctrl
| 右键双击b
Cmd
| 右键双击点击b
APP_SWITCH
Ctrl
s
Cmd
点击s
MENU
Ctrl
m
Ctrl
点击m
VOLUME_UP
Ctrl
↑
(上)
Cmd
↑
*(上)*点击
VOLUME_DOWN
Ctrl
↓
(下)
Cmd
↓
*(下)*点击
POWER
Ctrl
p
Cmd
打开电源右键双击**右键双击关闭屏幕 (保持投屏)p
Ctrl
o
Cmd
打开下拉菜单o
Ctrl
n
Cmd
关闭下拉菜单n
Ctrl
Shift
n
Cmd
Shift
复制到剪切板n
Ctrl
c
Cmd
剪切到剪切板c
Ctrl
x
Cmd
同步剪切板并粘贴x
Ctrl
v
Cmd
注入电脑剪切板文本v
Ctrl
Shift
v
Cmd
Shift
v
鼠标左键双击黑色区域可以去除黑色区域
如果电源关闭,鼠标右键双击打开电源;如果电源开启,鼠标右键双击相当于返回
为什么开发 QtScrcpy?
综合起来有以下几个原因,比重从大到小排列:
- 学习Qt的过程中需要一个项目实战一下
- 本身具有音视频相关技能,对音视频很感兴趣
- 本身具有 Android 开发技能,好久没用有点生疏,需要巩固一下
- 发现了 Scrcpy,决定用新的技术栈(C++ + Qt + Opengl + FFmpeg)进行复刻
编译
尽量提供了所有依赖资源,方便傻瓜式编译。
QtScrcpy
非 Arch Linux
- 使用官方 Qt Installer 或非官方工具(如 aqt)在目标平台上搭建Qt开发环境。 需要 5.12 以上版本 Qt(在 Windows 上使用 MSVC 2019)
- 克隆该项目:
git clone --recurse-submodules [email protected]:barry-ran/QtScrcpy.git
- Windows 使用 QtCreator 打开项目下 CMakeLists.txt 并编译 Release
- Linux 用终端执行
./ci/linux/build_for_linux.sh "Release"
注:编译结果位于output/x64/Release
中
Arch Linux
- 安装以下包:
qt5-base qt5-multimedia qt5-x11extras
(推荐安装qtcreator
) - 克隆该项目:
git clone --recurse-submodules [email protected]:barry-ran/QtScrcpy.git
- 用终端执行
./ci/linux/build_for_linux.sh "Release"
注:编译结果位于output/x64/Release
中
Scrcpy-Server
- 目标平台上搭建 Android 开发环境
- 使用 Android Studio 打开项目根目录中的 server
- 第一次打开时,如果你没有对应版本的 Gradle,Studio 会提示找不到 Gradle,是否升级 Gradle 并创建,选择取消,取消后会提示选择 Gradle 的位置,同样取消即可。Studio 会随后自动下载。
- 按需编辑代码
- 编译出 apk 以后改名为 scrcpy-server 并替换
third_party/scrcpy-server
即可
版权归原作者 Python代码大全 所有, 如有侵权,请联系我们删除。