A Scrcpy client in Rust & Tarui aimed at providing mouse and key mapping to control Android device, similar to a game emulator
APACHE-2.0 License
为了实现电脑控制安卓设备,本人使用 Tarui + Vue 3 + Rust 开发了一款跨平台桌面客户端。该客户端能够提供可视化的鼠标和键盘按键映射配置。通过按键映射实现了实现类似安卓模拟器的多点触控操作,具有毫秒级响应速度。该工具可广泛用于电脑控制安卓设备玩手游等等,提供流畅的触控体验。
本人对 Scrcpy 项目的开发者表示深深的敬意和感谢。Scrcpy 是一个强大而高效的开源工具,极大地方便了对 Android 设备的控制。本项目的实现基于 Scrcpy 的优秀架构,进行了鼠标键盘控制的优化和调整。
本项目不提供 Scrcpy 的投屏功能!本项目仅实现了 Scrcpy 的控制协议。
原因是投屏会存在延迟和模糊问题,本项目另辟蹊径,直接放弃投屏,而使用透明的蒙版显示窗口背后的内容(可以使用电脑安卓模拟器 、手机厂商提供的低延迟投屏等),从根本上杜绝了 Scrcpy 的投屏体验差的问题。
如果您确实需要一个开箱即用的投屏功能,并且不在意延迟和性能问题,可以使用安卓应用 ScreenStream 在局域网内投屏。本项目已适配 ScreenStream 投屏(自 v0.5.0
版本起),虽然它的性能可能不太理想,但开箱即用。
除此之外,为了更好的支持 Scrcpy Mask 与安卓设备交互,本人对 scrcpy-server 进行了一些修改,在此扩展出了一个分支项目 scrcpy-mask-server
v0.5.0
版本起,可以配合ScreenStream在同一局域网下投屏。目前宏的结构仅仅是一个 JSON 对象,功能有限,仅仅是作为过渡使用的。请勿投入太多时间来编写宏,因为宏的编写规范随时可能因版本更新而变动。
宏的示例可见 hotkey.ts 的 async function execMacro
函数注释。
比如 key-input-mode
宏,可以从按键映射模式切换到按键输入模式,常用于文本输入。示例如下:
[{ "args": [], "type": "key-input-mode" }]
提问时请尽可能全面而清晰地提供问题相关的信息,包括操作系统和软件版本。特别是如果有错误输出,请务必附带相关日志。
日志有两个来源,可能对定位并解决错误有所帮助。一般来说,Web 日志中就可以找到错误输出。
Ctrl+Shift+I
或 Cmd+Opt+I
打开开发者工具,点击控制台 (console),查看控制台内输出的信息。scrcpy-mask
,可在终端中实时看到程序的输出信息。如果你对这个项目感兴趣,欢迎提 PR 或 Issue。但我的时间和精力有限,所以可能无法全部及时处理。