C++版Android实时投屏软件系统源码,安卓手机投屏软件源码,无需root权限

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

QtScrcpy

QtScrcpy 可以通过 USB / 网络连接Android设备并进行显示和控制。无需root权限。

同时支持 GNU/Linux Windows 和 MacOS 三大主流桌面平台。
完整代码下载地址C++版Android实时投屏软件系统源码
它专注于:

  • 精致 (仅显示设备屏幕)
  • 性能 (30~60fps)
  • 质量 (1920×1080以上)
  • 低延迟 (35~70ms)
  • 快速启动 (1s 内就可以看到第一帧图像)
  • 非侵入性 (不在设备上安装任何软件)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

自定义按键映射

可以根据需要自己编写脚本将键盘按键映射为手机的触摸点击编写规则在这里

默认自带了针对和平精英手游和抖音进行键鼠映射的映射脚本开启平精英手游后可以用键鼠像玩端游一样玩和平精英手游开启抖音映射以后可以使用上下左右方向键模拟上下左右滑动你也可以按照编写规则编写其他游戏的映射文件默认按键映射如下

在这里插入图片描述

这里有玩和平精英的视频演示

自定义按键映射操作方法如下

  • 编写自定义脚本放入 keymap 目录
  • 点击刷新脚本确保脚本可以被检测到
  • 选择需要的脚本
  • 连接手机并启动服务之后点击应用脚本
  • ~即脚本中定义的 SwitchKey键切换为自定义映射模式即可启用
  • 再次按~键切换为正常控制模式
  • 对于和平精英等游戏若想使用方向盘控制载具记得在载具设置中设置为单摇杆模式

群控

你可以同时控制所有的手机

在这里插入图片描述

感谢

基于Genymobilescrcpy项目进行复刻重构非常感谢。

比较

QtScrcpy 和 Scrcpy 区别如下

关键点scrcpyQtScrcpy
界面sdlqt
视频解码ffmpegffmpeg
视频渲染sdlopengl
跨平台基础设施自己封装Qt
编程语言CC++
编程方式同步异步
按键映射不支持自定义支持自定义按键映射
编译方式Meson+GradleCMake
  • 使用Qt可以非常容易的定制自己的界面
  • 基于Qt的信号槽机制的异步编程提高性能
  • 方便新手学习
  • 增加多点触控支持

要求

Android 部分至少需要 API 21Android 5.0。

您要确保在 Android 设备上启用adb调试

运行

在你的电脑上接入Android设备然后运行程序点击 一键USB连接 或者 一键WIFI连接

无线连接步骤

  1. 将手机和电脑连接到同一局域网
  2. 安卓手机端在开发者选项中打开 USB 调试
  3. 通过 USB 连接安卓手机到电脑
  4. 点击刷新设备会看到有设备号更新出来
  5. 点击获取设备 IP
  6. 点击启动 adbd
  7. 无线连接
  8. 再次点击刷新设备发现多出了一个 IP 地址开头的设备选择这个设备
  9. 启动服务

备注启动 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+fCmd+f
调整窗口大小为 1:1Ctrl+gCmd+g
调整窗口大小去除黑边Ctrl+w | 左键双击Cmd+w | 左键双击
点击 主页Ctrl+h | 点击鼠标中键Ctrl+h | 点击鼠标中键
点击 BACKCtrl+b | 右键双击Cmd+b | 右键双击
点击 APP_SWITCHCtrl+sCmd+s
点击 MENUCtrl+mCtrl+m
点击 VOLUME_UPCtrl+ (上)Cmd+ (上)
点击 VOLUME_DOWNCtrl+ (下)Cmd+ (下)
点击 POWERCtrl+pCmd+p
打开电源右键双击右键双击
关闭屏幕 (保持投屏)Ctrl+oCmd+o
打开下拉菜单Ctrl+nCmd+n
关闭下拉菜单Ctrl+Shift+nCmd+Shift+n
复制到剪切板Ctrl+cCmd+c
剪切到剪切板Ctrl+xCmd+x
同步剪切板并粘贴Ctrl+vCmd+v
注入电脑剪切板文本Ctrl+Shift+vCmd+Shift+v

鼠标左键双击黑色区域可以去除黑色区域

如果电源关闭鼠标右键双击打开电源如果电源开启鼠标右键双击相当于返回

为什么开发 QtScrcpy

综合起来有以下几个原因比重从大到小排列

  1. 学习Qt的过程中需要一个项目实战一下
  2. 本身具有音视频相关技能对音视频很感兴趣
  3. 本身具有 Android 开发技能好久没用有点生疏需要巩固一下
  4. 发现了 Scrcpy决定用新的技术栈C++ + Qt + Opengl + FFmpeg进行复刻

编译

尽量提供了所有依赖资源方便傻瓜式编译。

QtScrcpy

非 Arch Linux

  1. 使用官方 Qt Installer 或非官方工具如 aqt在目标平台上搭建Qt开发环境。
    需要 5.12 以上版本 Qt在 Windows 上使用 MSVC 2019
  2. 克隆该项目git clone --recurse-submodules git@github.com:barry-ran/QtScrcpy.git
  3. Windows 使用 QtCreator 打开项目下 CMakeLists.txt 并编译 Release
  4. Linux 用终端执行 ./ci/linux/build_for_linux.sh "Release"
    注编译结果位于 output/x64/Release

Arch Linux

  1. 安装以下包qt5-base qt5-multimedia qt5-x11extras推荐安装 qtcreator
  2. 克隆该项目git clone --recurse-submodules git@github.com:barry-ran/QtScrcpy.git
  3. 用终端执行 ./ci/linux/build_for_linux.sh "Release"
    注编译结果位于 output/x64/Release

Scrcpy-Server

  1. 目标平台上搭建 Android 开发环境
  2. 使用 Android Studio 打开项目根目录中的 server
  3. 第一次打开时如果你没有对应版本的 GradleStudio 会提示找不到 Gradle是否升级 Gradle 并创建选择取消取消后会提示选择 Gradle 的位置同样取消即可。Studio 会随后自动下载。
  4. 按需编辑代码
  5. 编译出 apk 以后改名为 scrcpy-server 并替换 third_party/scrcpy-server 即可
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: androidc++

“C++版Android实时投屏软件系统源码,安卓手机投屏软件源码,无需root权限” 的相关文章