起因:一个很懒的瞬间
事情开始于一个再普通不过的晚上。我躺在床上刷短视频,手机支在小桌板上,想换下一个视频就得伸手过去,胳膊还要从被子里抽出来。冬天尤甚。
当时我手机里其实装过几个"隔空控制"类的 App,体验都很差:要么广告多到没法用,要么识别迟钝得像是隔了一个世纪,要么就是动不动要你开会员。作为一个后端出身的开发者,我当时的想法很简单——这玩意儿技术上没有壁垒,MediaPipe 是现成的,我自己写一个。
写完给自己用就行了吗?不。做出来之后我发现它确实好用,好用到我愿意为它付 19.9——那为什么不试试卖给别人?
技术方案:摄像头 + 关键点 + 无障碍
整个方案一句话就能说完:前置摄像头采帧 → MediaPipe Hands 提取 21 个手部关键点 → 自己写的模板匹配判断手势 → 无障碍服务注入滑动/点击/媒体按键。
摄像头帧流 (前置, 低分辨率)
↓
MediaPipe Hands (21 个关键点)
↓
手势判定 (防抖 + 置信度过滤)
↓
动作映射 (媒体控制 / 滑动 / 光标)
几个关键决策:
- 为什么用 MediaPipe 而不是自己训练模型? 一个人做产品,时间成本是最大的成本。MediaPipe 的手部关键点模型在手机上跑得很稳,我要做的只是"关键点 → 手势语义"这一层,这一层用几何规则加模板匹配就够,还比黑盒模型好调试。
- 为什么必须用无障碍服务? 因为我控制不了网易云和抖音——它们不会响应我的任何广播。想隔空"替用户滑一下",唯一合规的途径就是无障碍服务的手势注入。这也是为什么 App 要一个"无障碍"权限,我在隐私政策里写得很清楚:仅用于注入动作,不读取屏幕内容。
- 识别全部本地。 这不只是隐私卖点,也是架构事实:识别根本不需要网络,断网照样能用。
商业化:最难的不是技术
功能做完只完成了 30%,剩下 70% 是商业化——而这里面技术的占比其实很小:
- 试用与授权:我设计了一套"一码一机 + 离线验签"的授权系统,24 小时全功能试用,激活码本地 HMAC 验签,不依赖服务器在线。细节我单独写了一篇:《一码一机:我的离线授权系统设计》。
- 客服即售后:没有应用商店的个人开发者,售后就是 QQ 群 + 一个人。发码、答疑、远程指导装 App,全是我自己。这让我对"软件质量"有了全新的敬畏——每一个售前问题都是一分钟内可能流失的用户。
- 官网与分发:官网(就是你现在看的这个网站)自己写、自己部署,APK 放自己服务器上,App 内做版本检查在线更新。不依赖任何第三方商店,也就不用交上架费、不用面对审核。
定价与上架
定价 19.9 买断,具体思考过程也写了一篇:《为什么定价 19.9,以及为什么是买断制》。
从第一行代码到第一个付费用户,这个项目断断续续做了一个多月。回头看,最值得的经历不是 MediaPipe 怎么调,而是完整地走了一遍"想法 → 技术 → 产品 → 定价 → 售卖 → 售后"的闭环。个人开发者最大的优势是决策快,最大的劣势是没有退路——服务器是自己的、客服是自己的、代码是自己的,凌晨两点收到"激活码输不进去"的消息也只能爬起来看。
但说真的,看到后台设备数慢慢涨起来的时候,一切都值。
如果你也想试试,工具箱里有完整介绍,24 小时全功能免费,满意再付。