Android Auto开发(7)-AAP视频集成要求

166 阅读5分钟

以下是基于 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_GAINEDFOCUS_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 补充:唤醒时自动恢复

附:技术实现路线图

tongyi-mermaid-2025-11-27-183934.png

文档依据

  • Head Unit Integration Guide (HUIG) 4.3, Section R07
  • 所有“MUST”条款为强制要求(违反将导致 Android Auto 认证失败)
  • “n-ACK 流控” 为 Android Auto 4.3 核心优化机制(替代旧版固定码率)