Bluetooth (BT) Low Energy (LE) Audio представляет асинхронные логические транспортные механизмы, ориентированные на подключение (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 передаются через стек датчиков.
Режимы задержки
В случае с LE Audio механизм, с помощью которого стек BT указывает поддерживаемые режимы задержки аудио HAL и аудиофреймворку, такой же, как и для BT Classic (A2DP). Аудиоинтерфейс HAL сообщает о поддерживаемых режимах задержки в соответствии с выбранным аудиоустройством.
Реализации A2DP поддерживают только режимы FREE и LOW_LATENCY.
В отличие от этого, для BT LE Audio в 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 computing в фреймворке выполняет всю предварительную обработку данных IMU и согласование с движениями телефона, которые определяются его датчиками.
DYNAMIC_SPATIAL_AUDIO_HARDWARE. Этот режим используется, если выполняется одно из следующих условий:- Если поддерживается низкая задержка, HID передается по протоколу ISO, и HID можно туннелировать в механизм пространственных эффектов (указывается в HAL).
- Когда отслеживание головы активно и используется протокол ISO, данные HID передаются в движок эффектов пространственного звучания (указывается фреймворком).
В этом режиме движок эффектов пространственного звучания получает необработанные данные IMU напрямую от стека или контроллера Bluetooth. Пространственный эффект реализуется путем предварительной обработки данных IMU и согласования с движениями телефона, которые определяются его датчиками.
Перечисления режимов задержки сопоставляются с системным свойством bluetooth.core.le.dsa_transport_preference в Spatializer.cpp.
Поддержка пространственного звучания
Контроллер пространственного звучания в сервисе правил аудио управляет выбором транспортного протокола HT для LE Audio. Реализация движка пространственных эффектов указывает на поддержку туннелирования данных HT с помощью возможности HeadTracking.ConnectionMode.
Поддерживаются следующие режимы подключения HT:
FRAMEWORK_PROCESSED. Аудиофреймворк предоставляет HAL предварительно обработанные данные IMU в формате вектора "голова-сцена". Этот режим по умолчанию соответствует текущему режиму с классическим Bluetooth.DIRECT_TO_SENSOR_SW: движок пространственного звучания напрямую подключается к датчику через программный стек датчика. Аудиофреймворк управляет только состоянием датчика. Реализации программного обеспечения, в которых не используется предварительная обработка данных IMUlibheadtrackingAOSP или пространственный звук с разгрузкой DSP, могут использовать режимDIRECT_TO_SENSOR_SW.DIRECT_TO_SENSOR_TUNNEL– пространственный эффект напрямую подключается к датчику через аппаратный туннель. Аудиофреймворк управляет только состоянием датчика (включен или выключен). РежимDIRECT_TO_SENSOR_TUNNELможно использовать для реализации пространственного звучания с разгрузкой DSP.
Выбор режима задержки
Фреймворк выбирает режим задержки из списка поддерживаемых режимов задержки, которые сообщает HAL. Режим задержки устанавливается на основе текущего состояния отслеживания движений головы, текущей поддержки пространственного звучания и заданного поставщиком системного свойства, которое определяет порядок приоритета между механизмами передачи.
В 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), то режим задержки (DYNAMIC_SPATIAL_AUDIO_SOFTWAREилиLOW) определяется следующим предпочтительным режимом (iso-swилиle-acl).Если следующий предпочтительный режим не указан, система сообщает об ошибке конфигурации продукта.