以下是基于 Head Unit Integration Guide (HUIG) 4.3 文档中 第7章(R07开头条款) 关于 AAP(Android Auto Projection)视频集成 ,适用于车载系统(Head Unit)与移动设备(Mobile Device)的视频交互集成:
Android Auto Projection (AAP) 视频集成技术规范
(基于 HUIG 4.3 第7章 R07 系列条款)
一、核心原则:视频焦点(Video Focus)管理
所有视频交互必须以“视频焦点”状态为核心逻辑,确保车载系统(HU)与移动设备(MD)状态同步。
| 条款 | 要求 | 技术实现说明 |
|---|---|---|
| R07-325 | 当 HU 显示关闭(如屏幕休眠)但 AAP 仍活跃时: • 必须切换视频焦点 • 拒绝所有 AAP 视频焦点请求 | - HU 屏幕关闭(软件控制,非硬件断电)→ 触发焦点转移 - 立即向 MD 发送 VideoFocusState = NO_FOCUS- 任何 AAP 视频请求(如应用切换/启动)必须返回错误(如 ERROR_VIDEO_FOCUS_LOST) |
| R07-393 | 在混合 UI 场景下(如 HU 仪表盘叠加 AAP 投影界面): • 当 AAP 视频流可见,但 HU 输入焦点(如控制光标)在原生 UI 部分时 • HU 必须向 MD 发送视频焦点状态 | - 状态示例:VideoFocusState = VIDEO_VISIBLE_BUT_INPUT_FOCUS_ON_NATIVE_UI- 用于 MD 判断:是否允许继续渲染 AAP 视频(避免与原生 UI 交互冲突) - 关键点:焦点状态需实时同步(每 50ms 一次) |
| R07-394 | 在混合 UI 场景下(用户操作原生 UI 时): • 当 MD 持有视频焦点,但用户交互原生 UI(如点击仪表盘按钮) • HU 必须向 MD 发送视频焦点状态 | - 状态示例:VideoFocusState = VIDEO_FOCUS_LOST_DUE_TO_NATIVE_UI_INTERACTION- MD 收到后暂停视频渲染,释放资源 - 避免视频流与原生 UI 重叠导致的视觉冲突 |
✅ 重点总结:
- 视频焦点 = 仅一个应用可同时控制视频流渲染(AAP 或原生 UI)
- 状态同步 = 实时通信(通过
VideoFocusState消息,非轮询)- 拒绝请求 = 严格禁止(R07-325 的“MUST”是硬性要求)
二、视频流传输技术规范
所有视频流必须满足实时性、低延迟与自适应带宽要求
| 条款 | 要求 | 技术实现说明 |
|---|---|---|
| R07-466 | • AAP 视频流为实时流(HU 需立即渲染) • 采用 n-ACK 流控机制(当 MD 带宽不足时,MD 主动请求降速) • HU 必须在 100ms 内 ACK 视频包 | - 流控逻辑: 1. MD 发送视频包 → HU 接收 2. HU 100ms 内发送 ACK( ACK_PACKET_ID)3. MD 根据 ACK 间隔判断带宽: • ACK 间隔 > 100ms → 降速(降低码率/分辨率) • ACK 间隔 < 50ms → 提速(提升码率) - 关键指标: - 视频延迟 ≤ 150ms(端到端) - ACK 超时 = 100ms(超时后 MD 自动降速) |
✅ 重点总结:
- 100ms ACK 是硬性指标(HU 硬件/驱动需支持)
- n-ACK 机制 = MD 与 HU 的动态带宽协商,避免卡顿
- 实时性 = 与传统视频流(如直播)不同,AAP 视频需无缓冲渲染
三、混合 UI(Blended UI)交互规范
当 HU 同时显示原生 UI(如仪表盘)与 AAP 投影界面时
| 场景 | HU 行为 | MD 行为 |
|---|---|---|
| AAP 视频可见 + 用户操作原生 UI | • 发送 VideoFocusState = VIDEO_VISIBLE_BUT_INPUT_FOCUS_ON_NATIVE_UI• 暂停 AAP 视频渲染(避免画面闪烁) | • 立即暂停视频流(释放 GPU 资源) • 保持 UI 交互流畅(原生 UI 优先) |
| 用户切换到 AAP 界面 | • 发送 VideoFocusState = VIDEO_FOCUS_GAINED• 恢复视频渲染 | • 重新启动视频流 • 恢复应用交互(如导航语音提示) |
| HU 屏幕关闭 → 用户唤醒屏幕 | • 必须自动开启屏幕 • 必须接受 AAP 视频焦点请求(R07-325 补充) | • 立即发送视频流(需 100ms 内响应) • 无需用户额外操作 |
✅ 关键设计原则:
- 原生 UI 交互 > AAP 视频渲染(用户优先级)
- 屏幕唤醒 = 重置视频焦点(避免“屏幕亮但视频不可见”)
- 状态同步 = 事件驱动(非定时轮询,减少 CPU 消耗)
四、错误处理与边界场景
| 场景 | 处理要求 |
|---|---|
| HU 屏幕软件关闭(非物理断电) | • 必须发送 VideoFocusState = NO_FOCUS• 拒绝所有 AAP 视频请求(R07-325) |
| 视频流 ACK 超时(>100ms) | • HU 自动降速(降低码率/分辨率) • 不触发错误(符合 n-ACK 机制) |
| 混合 UI 中用户快速切换焦点 | • HU 需在 50ms 内更新 VideoFocusState• 避免状态冲突(如同时发送 FOCUS_GAINED 和 FOCUS_LOST) |
| MD 未响应 ACK | • HU 3 次超时后自动降速(避免视频卡死) • 仍保持基础交互能力(如音频) |
五、违反要求的典型问题
| 错误行为 | 后果 | 合规方案 |
|---|---|---|
| HU 屏幕关闭时接受 AAP 视频请求 | 视频黑屏 + 用户误操作(如点击无效) | 实现 R07-325:拒绝请求 + 发送 NO_FOCUS |
| 混合 UI 中未同步视频焦点状态 | AAP 视频与原生 UI 重叠(视觉混乱) | 按 R07-393/R07-394 实时发送状态 |
| HU 未在 100ms 内 ACK 视频包 | MD 误判带宽不足 → 画面卡顿/模糊 | 优化 HU 驱动:ACK 延迟 ≤ 80ms(预留缓冲) |
| 屏幕唤醒后未恢复视频焦点 | 用户需手动重启 AAP 应用(体验差) | 按 R07-325 补充:唤醒时自动恢复 |
附:技术实现路线图
文档依据:
- Head Unit Integration Guide (HUIG) 4.3, Section R07
- 所有“MUST”条款为强制要求(违反将导致 Android Auto 认证失败)
- “n-ACK 流控” 为 Android Auto 4.3 核心优化机制(替代旧版固定码率)