В Android 13 добавлена поддержка пространственного звучания. Для этого в ОС есть API, которые позволяют разработчикам приложений определять, можно ли воспроизводить многоканальный аудиоконтент с эффектом погружения при текущем сочетании реализации телефона, подключенной гарнитуры и настроек пользователя.
Производители устройств могут добавить эффект пространственного звучания с поддержкой отслеживания движений головы, обеспечив необходимый уровень производительности и задержки, используя новую архитектуру аудиоконвейера и интеграцию с фреймворком датчиков. Протокол HID определяет, как подключить устройство отслеживания движений головы по Bluetooth и сделать его доступным в качестве устройства HID через платформу датчиков Android. Подробнее о пространственном звучании и отслеживании движений головы…
Правила на этой странице относятся к решению для пространственного звучания, в котором используются новые API пространственного звучания и архитектура аудио на телефоне Android с Android 13 или более поздней версией ОС и совместимые наушники с датчиком отслеживания движения головы.
Рекомендации по реализации динамического и статического режимов пространственного звучания
Для статического пространственного звучания не требуется отслеживание движения головы, поэтому в наушниках не нужны специальные функции. Все проводные и беспроводные гарнитуры поддерживают статический пространственный звук.
Реализация API
Производители оригинального оборудования ДОЛЖНЫ реализовать класс Spatializer, представленный в Android 12. Реализация должна пройти тесты CTS, представленные для класса Spatializer.
Надежная реализация API гарантирует, что разработчики приложений, особенно стриминговых сервисов, могут рассчитывать на стабильную работу в экосистеме и выбирать лучший контент в зависимости от возможностей устройства, текущего контекста воспроизведения и выбора пользователя.
Пользовательский интерфейс
После реализации класса Spatializer убедитесь, что интерфейс работает следующим образом:
Когда гарнитура с поддержкой пространственного звучания подключена, в настройках устройства Bluetooth для нее появляется переключатель Пространственное звучание.
Рисунок 1. Настройки пространственного звучания.
Настройки доступны, когда гарнитура отключена.
По умолчанию после первого подключения гарнитуры пространственное звучание включено.
Выбранное пользователем состояние (включено или отключено) сохраняется после перезагрузки телефона, а также после отключения и повторного подключения гарнитуры.
Функциональное поведение
Аудиоформаты
При включенном пространственном звучании и использовании проводной или Bluetooth-гарнитуры пространственный эффект должен применяться к следующим аудиоформатам:
- AAC, 5.1 каналов
- Необработанный PCM, 5.1 каналов
Для удобства пользователей мы настоятельно рекомендуем поддерживать следующие форматы и конфигурации каналов:
- Dolby Digital Plus
- 5.1.2, 7.1, 7.1.2, 7.1.4
Воспроизведение стереоконтента
Стереоконтент не должен обрабатываться с помощью пространственного эффекта, даже если пространственное звучание включено. Если реализация позволяет пространственно обрабатывать стереоконтент, в ней должен быть специальный интерфейс, позволяющий пользователю включать и отключать эту функцию. Когда пространственное звучание включено, должна быть возможность переключаться между воспроизведением пространственно обработанного многоканального контента и необработанного стереоконтента без изменения настроек, переподключения или перенастройки гарнитуры. Переход между пространственным звучанием и стереозвуком должен быть плавным.
Переходы между вариантами использования и параллелизм
Особые случаи:
- Уведомления должны микшироваться с пространственным звуком так же, как и с обычным.
- Рингтоны должны быть совместимы с пространственным звуком. Однако по умолчанию механизм аудиофокуса приостанавливает воспроизведение пространственного аудиоконтента, когда звучит мелодия звонка.
- При ответе на звонок или видеоконференцию воспроизведение пространственного аудио должно приостанавливаться. После завершения вызова воспроизведение пространственного звучания должно возобновиться с теми же настройками. Переключение аудиоканала из режима пространственного звучания в режим разговора должно происходить быстро и незаметно, чтобы не влиять на качество звонка.
Воспроизведение через колонки
Поддержка пространственного звучания через динамики или трансаурального режима не требуется.
Рекомендации по реализации отслеживания движений головой
В этом разделе речь пойдет о динамическом пространственном звучании, для которого требуются определенные наушники.
Пользовательский интерфейс
После реализации и подключения гарнитуры с поддержкой пространственного звучания убедитесь, что интерфейс работает следующим образом:
Если в настройках устройства Bluetooth включена функция Пространственное звучание, под ней появится параметр Отслеживание движения головы :
Рисунок 2. Настройки пространственного звучания и отслеживания движения головы.
Если пространственное звучание отключено, параметр отслеживания движений головы не показывается.
По умолчанию после первого подключения гарнитуры отслеживание движения головы включено.
Выбранное пользователем состояние (включено или отключено) должно сохраняться после перезагрузки телефона, а также после отключения и повторного подключения гарнитуры.
Функциональное поведение
Отчеты о положении головы
- Информация о положении головы, передаваемая от очков на устройство Android в координатах x, y и z, должна быстро и точно отражать движения головы пользователя.
- Передача данных о положении головы по Bluetooth должна осуществляться по протоколу HID.
- Гарнитура должна отправлять информацию об отслеживании движений головы на телефон Android только тогда, когда пользователь включит отслеживание движений головы в настройках устройства Bluetooth.
Эффективность
Задержка
Задержка отслеживания движений головы – это время, которое проходит с момента, когда инерциальный измерительный блок (IMU) фиксирует движение головы, до момента, когда преобразователи наушников обнаруживают изменение звука, вызванное этим движением. Задержка отслеживания движений головы не должна превышать 150 мс.
Частота передачи данных о положении головы
Когда отслеживание положения головы активно, гарнитура должна сообщать о нем с рекомендуемой периодичностью примерно 20 мс. Чтобы избежать срабатывания логики обнаружения устаревших входных данных на телефоне во время дрожания передачи по Bluetooth, максимальное время между двумя обновлениями не должно превышать 40 мс.
Оптимизация энергопотребления
Чтобы оптимизировать энергопотребление, рекомендуем использовать переключение кодека Bluetooth и выбор режима задержки, предоставляемые интерфейсами HAL аудио и HAL аудио Bluetooth.
Реализации аудиофреймворка и стека Bluetooth в AOSP уже поддерживают сигналы для управления переключением кодеков. Если в реализации OEM-производителя для передачи аудио по Bluetooth используется основной аудиоинтерфейс HAL, известный как режим разгрузки кодека, OEM-производитель должен обеспечить передачу сигналов между аудиоинтерфейсом HAL и стеком Bluetooth.
Переключение кодеков
Если включено динамическое пространственное звучание и отслеживание движения головы, используйте кодек с низкой задержкой, например Opus. При воспроизведении непространственного аудиоконтента используйте кодек с низким энергопотреблением, например Advanced Audio Coding (AAC).
При переключении кодеков соблюдайте следующие правила:
- Отслеживать только активность в следующих выходных потоках HAL аудио:
- Выделенный выход пространственного звука
- Потоки, связанные с медиаконтентом, например глубокий буфер или воспроизведение сжатого контента.
Когда все нужные потоки бездействуют и начинается поток пространственного звучания, запустите поток Bluetooth с параметром
isLowLatency, установленным на значениеtrue, чтобы указать кодек с низкой задержкой.Когда все релевантные потоки бездействуют и начинается медиапоток, запустите поток Bluetooth, установив для
isLowLatencyзначениеfalse, чтобы указать кодек с низким энергопотреблением.Если активен медиапоток и запускается поток пространственного звучания, перезапустите поток Bluetooth, задав для параметра
isLowLatencyзначениеtrue.
Гарнитура должна поддерживать декодеры с низкой задержкой и низким энергопотреблением, а также реализовывать стандартный протокол выбора кодека.
Настройка режима задержки
Режим задержки настраивается при выборе кодека с низкой задержкой.
В зависимости от того, включено или отключено отслеживание положения головы, режим задержки использует доступные механизмы, чтобы уменьшить или увеличить задержку и достичь оптимального баланса между задержкой, энергопотреблением и качеством звука. Если включено пространственное звучание и отслеживание движения головы, выбирается режим с низкой задержкой. Если пространственное звучание включено, а отслеживание движения головы отключено, выбирается режим без задержки. Настройка задержки позволяет значительно экономить энергию и повысить надежность аудиоканала Bluetooth, если требуется только статическое пространственное звучание. Самый распространенный механизм регулировки задержки – это уменьшение или увеличение размера буфера дрожания в Bluetooth-гарнитуре.
Информацию о настройке режима задержки для LE Audio можно найти в разделе Отслеживание движений головы через LE Audio.