我的车车机装不了 APK 且我用的是小米手机,CarWith 在车上也用不了,因为车机只有无线 CarPlay 和 hicar 。 所以换个方向:不往车机装东西,让安卓手机扮演 iPhone 。 mcarplay 做的事: CarWith ->(本机 CarLife 七路 TCP)-> mcarplay ->(蓝牙 iAP2 + Wi‑Fi AirPlay)->车机
作为 CarLife 客户端,从 CarWith 拿到 H.264 画面、PCM 音频,并把触控回传给它 作为 CarPlay 手机端:蓝牙 iAP2 握手拿到热点信息,再走 AirPlay 配对、SETUP 、RECORD 推流 音频是 44.1k PCM 重采样到 48k 后编码成 AAC-LC ;画面直接转发 CarWith 的 H.264 ,不重新编码 不需要 root ,车机端也不需要装任何东西
踩过的几个坑:
AirPlay 已经连上,CarWith 端口却一直不起来。 排查后发现:mcarplay 在后台打开 CarWith 入口时,被 MIUI 的「后台弹出界面」权限静默拦截了。startActivity() 不报错,日志还显示“已请求”。 入网时系统选网框一直是空的。 原因是保活服务拿着 WIFI_MODE_FULL_LOW_LATENCY ,应用在前台时,这台小米的 Wi‑Fi 扫描全部 Scan aborted (-7)。中途我一度误以为是 CarWith 投屏造成的,做了对照实验才排除。 中途接入的视频流解不出来。CarWith 的 IDR 帧不一定带 SPS/PPS ,要缓存下来,在第一个 IDR 前补上。
现状:
在 DiPlay 、WinPlay 这两个软件接收端上跑通了:画面约 20fps ,声音、触控都正常 还没上过实车,车最近不在身边。所以不承诺兼容任何车型 实验性项目,日志和诊断报告都做了脱敏,不会自动上传
欢迎:
有小米手机、车机支持无线 CarPlay 的朋友帮忙测一下 对 iAP2 、AirPlay 或 CarLife 协议熟悉的朋友来指点
GitHub: https://github.com/wangxso/mcarplay (基于 CarDeck ,MIT )