Технология Bluetooth (BT) с низким энергопотреблением (LE) представляет асинхронные логические механизмы передачи данных с ориентацией на соединение (LE-ACL) и изохронные (LE-ISO) логические механизмы передачи данных для отслеживания положения головы (HT).
Android 15 обеспечивает поддержку корректировки режима задержки для HT в зависимости от того, используется ли транспортный механизм LE-ACL или LE-ISO.
На этой странице описывается, как взаимодействуют звуковая структура, звуковой HAL и стек Bluetooth для обнаружения и выбора транспортных механизмов LE-ACL или LE-ISO, поддерживаемых хостом и гарнитурой.
Поддержка LE-ACL и LE-ISO
Android 15 включает поддержку транспортных механизмов LE-ACL и LE-ISO с использованием системного свойства , определяемого поставщиком, режимов задержки звука HAL и режимов подключения пространственных преобразователей .
Системное свойство
Реализация поставщика телефона перечисляет поддерживаемые транспортные механизмы в системном свойстве bluetooth.core.le.dsa_transport_preference
. Значение представляет собой список строк, разделенных запятыми, в котором поддерживаемые транспорты перечислены в порядке предпочтения:
-
le-acl
: транспорт LE-ACL, когда данные инерциального измерительного блока (IMU) передаются через стек датчиков. -
iso-hw
: транспорт ISO с возможностью туннелирования данных HT напрямую от контроллера Bluetooth к пространственному преобразователю в аудио DSP. -
iso-sw
: транспорт ISO без возможности туннелирования, когда данные IMU передаются через стек датчиков.
Режимы задержки
В случае аудио BT LE механизм для стека BT, указывающий поддерживаемые режимы задержки для аудио HAL и аудио фреймворка, такой же, как и определенный для BT Classic (A2DP). Аудио HAL сообщает поддерживаемые режимы задержки в соответствии с выбранным в данный момент аудиоустройством.
Реализации A2DP поддерживают только режимы FREE
и LOW_LATENCY
.
Напротив, для звука BT LE в аудио HAL определены следующие режимы задержки для поддержки добавления транспортных механизмов LE-ACL и LE-ISO:
FREE
: Это значение указывает на отсутствие определенных ограничений на задержку. Этот режим используется, когда низкая задержка не поддерживается (указывается HAL) или когда HT не активен (указывается фреймворком).LOW
: Это значение указывает на относительно низкую задержку (например, менее 100 мс), совместимую с работой HT. Этот режим используется, когда поддерживается низкая задержка и HID передается по протоколу ACL (указывается HAL), или когда HT активен и другие режимы с низкой задержкой недоступны (указывается фреймворком).DYNAMIC_SPATIAL_AUDIO_SOFTWARE
: этот режим используется при выполнении одного из следующих условий:- Если поддерживается низкая задержка, HID передается по протоколу ISO, и HID не может быть туннелирован к движку эффекта пространственного преобразователя (обозначен как HAL).
- Когда HT активен и используется протокол ISO, аудиофреймворк предоставляет данные HID движку эффектов пространственного преобразователя (указывается фреймворком).
В этом режиме вычислительная библиотека HT в фреймворке выполняет всю предварительную обработку данных IMU и сверку с движениями телефона, зафиксированными его датчиками.
DYNAMIC_SPATIAL_AUDIO_HARDWARE
: этот режим используется при выполнении одного из следующих условий:- Если поддерживается низкая задержка, HID передается по протоколу ISO, и HID может быть туннелирован к движку эффекта пространственного преобразователя (обозначен как HAL).
- При активном HT и использовании протокола ISO данные HID туннелируются в механизм эффекта пространственного преобразователя (указанный фреймворком).
В этом режиме механизм эффекта пространственного локатора получает необработанные данные IMU напрямую из стека BT или контроллера BT. Реализация эффекта пространственного локатора выполняет всю предварительную обработку данных IMU и согласование с движениями телефона, указанными датчиками телефона.
Перечисления режимов задержки сопоставляются с системным свойством bluetooth.core.le.dsa_transport_preference
в Spatializer.cpp
.
Поддержка Spatializer
Контроллер spacelizer в службе политики звука управляет выбором транспортного протокола HT по аудио LE. Реализация механизма эффектов spacelizer указывает на поддержку туннелирования данных HT с возможностью HeadTracking.ConnectionMode
.
Поддерживаются следующие режимы HT-подключения:
-
FRAMEWORK_PROCESSED
: Аудиофреймворк предоставляет предварительно обработанные данные IMU в векторном формате head-to-stage для HAL. Этот режим по умолчанию соответствует текущему режиму с BT classic. -
DIRECT_TO_SENSOR_SW
: Эффектный движок пространственного преобразователя напрямую подключается к датчику через программный стек датчика. Аудиофреймворк управляет только включенным состоянием датчика. Реализации программного обеспечения, которые не используют предварительную обработку данных IMU AOSPlibheadtracking
или реализации пространственного преобразователя с разгрузкой DSP, могут использовать режимDIRECT_TO_SENSOR_SW
. -
DIRECT_TO_SENSOR_TUNNEL
: Эффектный движок пространственного преобразователя напрямую подключается к датчику через аппаратное туннелирование. Аудиофреймворк управляет только включенным состоянием датчика. Реализации пространственного преобразователя с разгрузкой DSP могут использовать режимDIRECT_TO_SENSOR_TUNNEL
.
Выбор режима задержки
Фреймворк выбирает режим задержки из списка поддерживаемых режимов задержки , которые сообщает HAL. Режим задержки устанавливается на основе текущего состояния включения HT, текущей поддержки пространственных преобразователей и указанного поставщиком системного свойства , которое устанавливает порядок приоритетов между транспортными механизмами.
Для выбора режима задержки фреймворк использует следующий процесс в selectHeadtrackingConnectionMode_l
:
- Фреймворк загружает транспортные предпочтения из системного свойства
bluetooth.core.le.dsa_transport_preference
. - Поддерживаемые режимы задержки, сообщаемые аудио HAL, фильтруются и упорядочиваются по списку, загруженному на шаге 1.
- Если режим с наивысшим приоритетом и низкой задержкой —
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
).Если следующий предпочтительный режим не указан, система сообщает об ошибке конфигурации продукта.