蓝牙 (BT) 低功耗 (LE) 音频引入了适用于头部追踪 (HT) 数据的异步面向连接的逻辑 (LE-ACL) 和等时 (LE-ISO) 逻辑传输机制。
Android 15 支持根据使用的是 LE-ACL 还是 LE-ISO 传输机制来调整 HT 的延迟模式。
本页面介绍了音频框架、音频 HAL 和蓝牙堆栈如何相互交互,以发现并选择主机和耳机支持的 LE-ACL 或 LE-ISO 传输机制。
支持 LE-ACL 和 LE-ISO
Android 15 通过使用供应商定义的系统属性、音频 HAL 延迟模式和空间化程序连接模式,支持 LE-ACL 和 LE-ISO 传输机制。
系统属性
手机供应商实现在 bluetooth.core.le.dsa_transport_preference
系统属性中列出了支持的传输机制。该值是一个逗号分隔的字符串列表,按优先顺序列出了支持的传输方式:
le-acl
:LE-ACL 传输,当通过传感器堆栈报告惯性测量装置 (IMU) 数据时。iso-hw
:ISO 传输,能够将 HT 数据直接从蓝牙控制器隧道式传输到音频 DSP 中的空间化程序。iso-sw
:不具备隧道功能的 ISO 传输,当通过传感器堆栈报告 IMU 数据时。
延迟模式
对于 BT LE 音频,BT 堆栈向音频 HAL 和音频框架指明支持的延迟模式的机制与为传统 BT (A2DP) 定义的机制相同。音频 HAL 会根据当前选择的音频设备报告支持的延迟模式。
A2DP 实现仅支持 FREE
和 LOW_LATENCY
模式。
相比之下,对于 BT LE 音频,音频 HAL 中定义了以下延迟模式,以支持添加 LE-ACL 和 LE-ISO 传输机制:
FREE
:此值表示对于延迟时间,没有特定的限制。当不支持低延迟时间(由 HAL 指示)或 HT 处于非活动状态(由框架指示)时,使用此模式。LOW
:此值表示与 HT 操作兼容的相对较低的延迟时间(例如,小于 100 毫秒)。当支持低延迟时间且 HID 通过 ACL 协议传输(由 HAL 指示)时,或当 HT 处于活动状态且没有其他低延迟模式可用(由框架指示)时,使用此模式。DYNAMIC_SPATIAL_AUDIO_SOFTWARE
:当满足以下任一条件时,系统会使用此模式:- 如果支持低延迟时间,HID 会通过 ISO 协议传输,并且 HID 无法隧道式传输到空间化程序效果引擎(由 HAL 指示)。
- 当音频框架向空间化程序效果引擎提供 HID 数据时,HT 处于活动状态且使用 ISO 协议(由框架指示)。
在此模式下,框架中的 HT 计算库会对 IMU 数据执行所有预处理,并与手机传感器指示的手机移动情况进行协调。
DYNAMIC_SPATIAL_AUDIO_HARDWARE
:当满足以下条件之一时,系统会使用此模式:- 如果支持低延迟时间,HID 会通过 ISO 协议传输,并且 HID 可以隧道式传输到空间化程序效果引擎(由 HAL 指示)。
- 当 HT 处于活动状态且使用 ISO 协议时,HID 数据会被隧道式传输到空间化程序效果引擎(由框架指示)。
在此模式下,空间化程序效果引擎会直接从 BT 堆栈或 BT 控制器接收未处理的 IMU 数据。空间化程序效果实现会对 IMU 数据执行所有预处理,并与手机传感器指示的手机移动情况进行协调。
延迟模式枚举会映射到 Spatializer.cpp
中的 bluetooth.core.le.dsa_transport_preference
系统属性。
空间化程序支持
音频政策服务中的空间化程序控制器用于控制通过 LE 音频选择 HT 传输协议。空间化程序效果引擎实现表明其支持具有 HeadTracking.ConnectionMode
功能的 HT 数据隧道。
支持的 HT 连接模式如下:
FRAMEWORK_PROCESSED
:音频框架采用头部到舞台矢量格式,向 HAL 提供经过预处理的 IMU 数据。此默认模式与使用传统蓝牙的当前模式相对应。DIRECT_TO_SENSOR_SW
:空间化程序效果引擎通过传感器软件堆栈直接连接到传感器。音频框架仅控制传感器的启用状态。不使用 AOSPlibheadtracking
IMU 数据预处理或 DSP 分流空间化程序实现的软件实现可以使用DIRECT_TO_SENSOR_SW
模式。DIRECT_TO_SENSOR_TUNNEL
:空间化程序效果引擎通过硬件隧道直接连接到传感器。音频框架仅控制传感器的启用状态。DSP 分流的空间化程序实现可以使用DIRECT_TO_SENSOR_TUNNEL
模式。
延迟模式选择
该框架从 HAL 报告的所支持的延迟模式列表中选择延迟模式。延迟模式的设置是基于当前的 HT 启用状态、当前的空间化程序支持以及供应商指定的系统属性(用于在传输机制之间建立优先级顺序)。
该框架在 selectHeadtrackingConnectionMode_l
中使用以下流程来选择延迟模式:
- 该框架从
bluetooth.core.le.dsa_transport_preference
系统属性加载传输优先级。 - 系统根据第 1 步中加载的列表过滤音频 HAL 报告的所支持的延迟模式,并对其进行排序。
- 如果最高优先级的低延迟模式为
iso-hw
,并且空间化程序实现支持直接传感器连接(即在空间化程序中设置了DIRECT_TO_SENSOR_SW
或DIRECT_TO_SENSOR_TUNNEL
),则延迟模式设置为DYNAMIC_SPATIAL_AUDIO_HARDWARE
。 如果最高优先级的低延迟模式为
iso-hw
,并且空间化程序实现不支持直接传感器连接(未在空间化程序中设置DIRECT_TO_SENSOR_SW
或DIRECT_TO_SENSOR_TUNNEL
),则下一个首选模式(iso-sw
或le-acl
)将决定延迟模式(DYNAMIC_SPATIAL_AUDIO_SOFTWARE
或LOW
)。如果未指定下一个首选模式,系统会报告产品配置错误。