网易首页 > 网易号 > 正文 申请入驻

在Tauri应用里嵌入scrcpy:Mac端安卓投屏实战

0
分享至

想在Mac上远程控制安卓设备?scrcpy几乎是免费方案里的最优解——延迟低、无需在设备上装应用,直接用ADB就能镜像屏幕。但把它塞进一个Tauri桌面应用里,事情就没那么简单了。

这篇文章聊聊我在HiyokoKit里集成scrcpy时遇到的具体问题,以及怎么解决的。


scrcpy是什么


简单来说,scrcpy是个开源工具,通过ADB协议把安卓设备的屏幕实时镜像到电脑,同时支持键盘鼠标控制。Mac用户想免费投屏安卓,这几乎是唯一兼顾速度和稳定性的选择。它不需要在手机上装任何客户端,插线或无线都能用。

从Rust启动scrcpy

Tauri的后端是Rust,所以得用std::process::Command来拉起scrcpy进程。我封装了一个ScrcpyProcess结构体,核心就三个方法:start、stop、is_running。

start方法组装命令行参数:设备序列号、最大分辨率、视频码率、窗口标题,还有--no-audio禁用音频。spawn()启动进程后,把Child句柄存起来。stop直接kill进程。is_running用try_wait检查子进程是否还在运行,用来更新UI状态。

代码不复杂,但有个坑:scrcpy是外部二进制,Tauri应用怎么保证用户机器上一定有?

打包scrcpy进应用

两种路子:要么要求用户自己装scrcpy和adb,要么打包进应用资源。我选了后者,体验更完整。

在tauri.conf.json的bundle.resources里配置:

"resources": ["bin/scrcpy", "bin/adb"]

运行时通过app_handle.path().resource_dir()拿到资源目录,拼出完整路径。这里要注意,Mac上得用universal binary,同时兼容Intel和Apple Silicon。


检测窗口关闭

scrcpy有个特性:用户关掉镜像窗口,进程就退出。但Tauri应用本身还在跑,UI状态得同步更新,不然按钮还是"停止投屏"实际上已经断了。

我开了一个后台tokio任务,每秒轮询is_running()。发现进程没了,就emit一个scrcpy-stopped事件到前端,UI收到后重置状态。简单粗暴,但够用。

多设备切换

用户可能同时插着多台安卓设备,scrcpy的--serial参数用来指定投哪一台。需要先跑adb devices解析输出,拿到设备序列号,再传给scrcpy。

解析逻辑是:跳过第一行"List of devices attached",找包含"device"字样的行,取第一列就是序列号。没找到就报错。这个流程做成异步的,不阻塞主线程。

实际体验

这套方案跑下来,延迟控制在几十毫秒,日常调试完全够用。Tauri的跨平台特性也让后续移植Windows版本省了不少事——核心Rust代码不用动,换个资源路径就行。

如果你在折腾类似的桌面工具,希望这些细节能帮你少踩几个坑。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
2026一季度财政自给率:浙江96%领跑,10多个省不足50%

2026一季度财政自给率:浙江96%领跑,10多个省不足50%

风向观察
2026-05-26 11:27:00
刚上太空仅一夜,就炸出一堆牛鬼蛇神,香港母亲黎家盈刺痛了谁?

刚上太空仅一夜,就炸出一堆牛鬼蛇神,香港母亲黎家盈刺痛了谁?

何氽简史
2026-05-25 19:01:58
教育是不是生大病了?网传现在的中学生都过得很压抑…

教育是不是生大病了?网传现在的中学生都过得很压抑…

慧翔百科
2026-05-26 11:29:48
15分钟灭国警告!俄罗斯摊牌:若敢碰加里宁格勒,就让立陶宛消失

15分钟灭国警告!俄罗斯摊牌:若敢碰加里宁格勒,就让立陶宛消失

观史搜寻着
2026-05-25 10:50:13
五个副省级城市政府主要领导调整,“70后”杜旭亮任杭州市代市长

五个副省级城市政府主要领导调整,“70后”杜旭亮任杭州市代市长

上观新闻
2026-05-26 10:21:18
安妮·海瑟薇自曝左眼有10年基本看不见:我的左眼已经算是盲人

安妮·海瑟薇自曝左眼有10年基本看不见:我的左眼已经算是盲人

韩小娱
2026-05-25 20:26:53
吉利,让“AI+车”四海归一

吉利,让“AI+车”四海归一

脑极体
2026-05-23 01:51:15
安徽明光遭遇短时极端暴雨!大量车辆被淹,低洼小区沦为“泽国”

安徽明光遭遇短时极端暴雨!大量车辆被淹,低洼小区沦为“泽国”

火山詩话
2026-05-25 10:46:29
从低价大促到体验盛宴,京东618重塑年中消费场

从低价大促到体验盛宴,京东618重塑年中消费场

新立场NewPosition
2026-05-20 18:16:01
逼疯了!湖州一商业广场内,一名商户情绪失控,当众怒砸自家店铺

逼疯了!湖州一商业广场内,一名商户情绪失控,当众怒砸自家店铺

火山詩话
2026-05-24 17:24:10
无缘欧冠后米兰地震 官宣3大高管离任+58岁阿莱格里下课 新帅曝光

无缘欧冠后米兰地震 官宣3大高管离任+58岁阿莱格里下课 新帅曝光

我爱英超
2026-05-26 06:28:17
王博:上海的替补在别队都能打主力,我们不可能只靠经验赢球

王博:上海的替补在别队都能打主力,我们不可能只靠经验赢球

懂球帝
2026-05-26 11:48:25
山西矿难背后:通洲煤老板任铁柱的发家史

山西矿难背后:通洲煤老板任铁柱的发家史

舜口说
2026-05-26 10:04:19
今日最佳:捡错人了。

今日最佳:捡错人了。

差评XPIN
2026-05-26 00:11:49
雷军:使用我的推荐码的车主实在太多,有点扛不住了,计划月底停止

雷军:使用我的推荐码的车主实在太多,有点扛不住了,计划月底停止

齐鲁壹点
2026-05-26 10:37:10
“割四赔五”!又一新词诞生,河南农机夫妻哭诉襄阳割麦遭遇不公

“割四赔五”!又一新词诞生,河南农机夫妻哭诉襄阳割麦遭遇不公

火山詩话
2026-05-26 06:36:12
窦唯女儿命运天壤之别:星二代与打工妹的差距

窦唯女儿命运天壤之别:星二代与打工妹的差距

蹲坑看世界
2026-05-25 20:53:59
美国专家坦言:中国在中越战争中得到的东西,瞒过了全世界

美国专家坦言:中国在中越战争中得到的东西,瞒过了全世界

阿晭评论哥
2026-05-25 10:56:54
博主曝四川稻城亚丁,划省道为内部路,硬刚后自驾进入,网友炸锅

博主曝四川稻城亚丁,划省道为内部路,硬刚后自驾进入,网友炸锅

另子维爱读史
2026-05-25 19:19:03
俄罗斯大规模袭击基辅,效果等于零

俄罗斯大规模袭击基辅,效果等于零

刘耘博士
2026-05-26 10:26:06
2026-05-26 14:07:04
固件更新中
固件更新中
有态度网友ytd
4745文章数 38关注度
往期回顾 全部

科技要闻

今年秋季,麒麟芯片将首次落地"逻辑折叠"

头条要闻

上海一小区车库土多得离谱 居民吐槽:不敢呼吸

头条要闻

上海一小区车库土多得离谱 居民吐槽:不敢呼吸

体育要闻

上赛季差点降入英甲,下赛季要踢英超了

娱乐要闻

景甜被曝停工失联 富商索要2亿和解费

财经要闻

中国铝行业爆单 下一个“煤炭”大周期?

汽车要闻

纯电续航310km 2026款海狮06DM-i上市售12.99万元起

态度原创

游戏
本地
亲子
旅游
公开课

《Dota2》TI15直邀公布!Ame和fy再携手 征战上海

本地新闻

用云锦的方式,打开江苏南京

亲子要闻

什么牌奶粉好?恬 适 奶 粉 以多维配方助力宝宝舒适成长

旅游要闻

张家界天门山景区通报山体岩石脱落:无游客受伤 未发现其他坠石隐患

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版