汽水音乐多端播放指南:三个设置解决 90% 的断点
同一首歌,手机听到 2 分 31 秒,上车后车机从 0 秒开始——这类抱怨在车机论坛里出现了很多年。汽水音乐 5.8.0 把跨端续播的误差压到 2 秒内,但实测中仍有三种情况会失败。搞清楚断点在哪,比反复重装有用。
背景
跨端续播的技术难点看似是同步,实际是时序。手机端不知道什么时候会被系统清理,车机端不知道什么时候能建立连接,两边都只能靠“最后一次快照”来猜。快照写得越频繁越准,但耗电增加;写得越少越省电,但容易丢进度。
断点一:应用被系统清理,快照没写进去
安卓系统在内存紧张时会清理后台应用。旧版只在应用正常退出时上报进度,被强杀时上报丢失,车机读到的就是上一次的进度,甚至读到空值。
5.8.0 改为每 15 秒写一次本地快照,快照存在应用私有目录,不依赖进程存活。实测用 adb 强制杀掉进程 20 次,车机端读取到的进度与杀进程前的差值最大 14 秒,平均 7.3 秒。
省电模式会影响快照频率。开启系统级省电后,快照间隔被拉长到 60 秒,误差相应增大。长途驾驶前把汽水音乐加入省电白名单,是成本最低的优化。
| 状态 | 旧版误差 | 5.8.0 误差 | 说明 |
|---|---|---|---|
| 正常退出 | 3 秒 | 1.2 秒 | 主动上报 |
| 后台被清理 | 从头播放 | 7.3 秒 | 依赖本地快照 |
| 省电模式被杀 | 从头播放 | 21.6 秒 | 快照间隔 60 秒 |
断点二:蓝牙连接与播放启动抢时序
车机点火后,蓝牙连接建立与车机端应用启动几乎同时发生。如果应用先启动、蓝牙后连上,应用会认为当前无外部设备,按手机扬声器播放,进度虽然对,声音却出不来。
复现方法是关闭车机蓝牙、打开车机端应用、再打开蓝牙。三次测试中两次出现“显示在播放但无声”,手动暂停再播放恢复。5.8.0 增加了连接状态监听,检测到蓝牙建立后重新初始化音频输出。
不同车厂的系统差异较大。CarPlay 与 HiCar 的时序由系统控制,相对稳定;车厂定制系统(基于安卓深度定制)的蓝牙栈实现不一,适配进度需在应用内“车机连接”页查看。
| 连接方式 | 成功次数 | 平均误差 | 主要问题 |
|---|---|---|---|
| CarPlay | 20/20 | 1.8 秒 | 无明显问题 |
| HiCar | 19/20 | 2.1 秒 | 偶发无声 |
| 车厂定制系统 | 16/20 | 3.4 秒 | 蓝牙时序不一 |
断点三:多端并发,谁该让出播放权
同一账号允许手机、平板、车机、网页同时登录,但同一时刻只允许一个设备发声。当车机开始播放时,手机会收到提示并暂停,这个切换依赖服务端的播放权仲裁。
弱网环境下仲裁消息可能延迟。实测在地下车库(信号 1 格)从手机切到车机,手机延迟 8 秒才暂停,出现短暂的雙端同播。这不是续播失败,是仲裁消息没及时送达。
想避免这种情况,可以在上车前手动暂停手机端,或者在设置里开启“连接车机时自动暂停本机播放”。后者在 5.8.0 中默认开启,可在车机连接页关闭。
| 场景 | 切换耗时 | 是否双端同播 | 处理方式 |
|---|---|---|---|
| Wi-Fi 下手机→车机 | 1.4 秒 | 否 | 自动仲裁 |
| 4G 弱信号下切换 | 8.2 秒 | 是,约 3 秒 | 手动暂停 |
| 网页端抢占 | 0.9 秒 | 否 | 自动仲裁 |
续播做不好,用户不会说“时序有问题”,只会说“这应用很蠢”。所以这一类问题必须在客户端兜住,不能指望用户理解原理。—— 汽水音乐客户端工程师在内部分享中的说法
5.8.0 灰度期间,车机续播相关工单从每万活跃用户 4.7 单降到 2.0 单,下降 57.4%。同期“上车从头播放”的负向评论占比从 11.2% 降到 4.1%。灰度覆盖 12 款车型、3 种连接方式,样本量 8.6 万台设备。
写在最后
三个断点,两个能靠设置解决,一个要靠车厂适配。上车前手动暂停、把应用加入省电白名单、确认车机连接页的适配状态,这三步做完,大部分“从头播放”的情况会消失。剩下的部分,等车机版本更新比反复重装应用更有效。
读者评论(4)
省电白名单这条太关键了,我的手机一到 20% 电量就开始从头放,一直以为是车机问题。
地下车库双端同播遇到过,手机和车机同时响,场面挺尴尬。
希望车机连接页能直接显示“已适配/未适配”,现在只有个列表,看不出自己车型什么状态。
误差 2 秒内基本感知不到,比之前的 40 秒强太多。