Android 13 wprowadza obsługę dźwięku przestrzennego, udostępniając interfejsy API, które pozwalają deweloperom aplikacji sprawdzać, czy bieżąca kombinacja implementacji telefonu, podłączonych słuchawek i ustawień użytkownika umożliwia odtwarzanie wielokanałowych treści audio w sposób immersyjny.
Producenci OEM mogą zapewnić efekt dźwięku przestrzennego z obsługą śledzenia ruchów głowy, zachowując wymagany poziom wydajności i opóźnienia, dzięki nowej architekturze potoku audio i integracji z platformą czujników. Protokół HID określa, jak podłączyć urządzenie śledzące ruchy głowy przez Bluetooth i udostępnić je jako urządzenie HID w ramach platformy czujników Androida. Więcej wymagań i informacji o weryfikacji znajdziesz w sekcji Dźwięk przestrzenny i śledzenie ruchów głowy.
Wytyczne na tej stronie dotyczą rozwiązania dźwięku przestrzennego, które wykorzystuje nowe interfejsy API dźwięku przestrzennego i architekturę dźwięku na telefonie z Androidem 13 lub nowszym oraz kompatybilnych słuchawkach z czujnikiem śledzenia ruchów głowy.
Wytyczne dotyczące implementacji dynamicznych i statycznych trybów dźwięku przestrzennego
Statyczny dźwięk przestrzenny nie wymaga śledzenia ruchów głowy, więc zestaw słuchawkowy nie musi mieć tej funkcji. Wszystkie przewodowe i bezprzewodowe zestawy słuchawkowe mogą obsługiwać statyczny dźwięk przestrzenny.
Implementacja interfejsu API
Producenci OEM MUSZĄ zaimplementować Spatializer
klasę wprowadzoną w Androidzie 12. Implementacja musi przejść testy CTS
wprowadzone w przypadku klasy
Spatializer.
Solidna implementacja interfejsu API zapewnia deweloperom aplikacji, zwłaszcza usług strumieniowego przesyłania multimediów, spójne działanie w całym ekosystemie i umożliwia wybieranie najlepszych treści na podstawie możliwości urządzenia, bieżącego kontekstu renderowania i wyborów użytkownika.
Interfejs użytkownika
Po wdrożeniu klasy Spatializer
sprawdź, czy interfejs użytkownika działa w ten sposób:
Gdy sparujesz słuchawki obsługujące dźwięk przestrzenny, w ustawieniach urządzenia Bluetooth dla tych słuchawek pojawi się przełącznik Dźwięk przestrzenny:
Rysunek 1. Ustawienie dźwięku przestrzennego.
Ustawienia są dostępne, gdy zestaw słuchawkowy jest odłączony.
Domyślny stan dźwięku przestrzennego po pierwszym sparowaniu słuchawek to włączony.
Stan wybrany przez użytkownika (włączony lub wyłączony) jest zachowywany po ponownym uruchomieniu telefonu lub rozłączeniu i ponownym sparowaniu zestawu słuchawkowego.
Działanie funkcjonalne
Formaty audio
Gdy dźwięk przestrzenny jest włączony, a urządzeniem renderującym są słuchawki przewodowe lub Bluetooth, efekt przestrzenny musi renderować te formaty audio:
- AAC, 5.1-kanałowy
- Surowy PCM, 5.1-kanałowy
Aby zapewnić lepsze wrażenia użytkownikom, zdecydowanie zalecamy obsługę tych formatów i konfiguracji kanałów:
- Dolby Digital Plus
- 5.1.2, 7.1, 7.1.2, 7.1.4
Odtwarzanie treści stereo
Treści stereofoniczne nie mogą być renderowane za pomocą silnika efektów przestrzennych, nawet jeśli dźwięk przestrzenny jest włączony. Jeśli implementacja umożliwia przestrzenne odtwarzanie treści stereo, musi zawierać niestandardowy interfejs, który pozwala użytkownikowi łatwo włączać i wyłączać tę funkcję. Gdy dźwięk przestrzenny jest włączony, musi być możliwe przejście z odtwarzania przestrzennych treści wielokanałowych na przestrzenne treści stereo bez konieczności wprowadzania zmian w ustawieniach użytkownika, ponownego podłączania lub ponownej konfiguracji słuchawek. Przejście między treściami w dźwięku przestrzennym a treściami stereo musi następować z minimalnymi zakłóceniami dźwięku.
Przejścia między przypadkami użycia i współbieżność
W przypadku specjalnych przypadków użycia postępuj w ten sposób:
- Powiadomienia muszą być miksowane z treściami audio przestrzennego w taki sam sposób, jak w przypadku treści audio bez dźwięku przestrzennego.
- Dzwonki muszą być miksowane z treściami audio w przestrzeni. Domyślnie jednak mechanizm aktywności audio wstrzymuje treści dźwięku przestrzennego, gdy rozlega się dzwonek.
- Podczas odbierania lub nawiązywania połączenia telefonicznego lub wideokonferencji odtwarzanie dźwięku przestrzennego musi zostać wstrzymane. Po zakończeniu połączenia odtwarzanie dźwięku przestrzennego musi zostać wznowione z tymi samymi ustawieniami dźwięku przestrzennego. Przełączenie ścieżki audio z trybu dźwięku przestrzennego na tryb rozmowy musi być szybkie i płynne, aby nie wpływać na jakość połączenia.
Odtwarzanie na głośnikach
Obsługa przestrzennego dźwięku przez głośniki lub tryb transauralny nie jest wymagana.
Wytyczne dotyczące implementacji śledzenia ruchów głowy
Ta sekcja dotyczy dynamicznego dźwięku przestrzennego, który ma określone wymagania dotyczące słuchawek.
Interfejs użytkownika
Po wdrożeniu i sparowaniu zestawu słuchawkowego obsługującego dźwięk przestrzenny sprawdź, czy interfejs użytkownika działa w ten sposób:
W ustawieniach urządzenia Bluetooth, gdy włączone jest ustawienie Dźwięk przestrzenny dla słuchawek, pod ustawieniem Dźwięk przestrzenny pojawia się ustawienie Śledzenie ruchów głowy:
Rysunek 2. Ustawienie dźwięku przestrzennego i śledzenia ruchów głowy.
Ustawienie śledzenia ruchów głowy NIE jest widoczne, gdy dźwięk przestrzenny jest wyłączony.
Domyślny stan śledzenia ruchów głowy po początkowym sparowaniu zestawu słuchawkowego to włączone.
Stan wybrany przez użytkownika (włączony lub wyłączony) musi być zachowany po ponownym uruchomieniu telefonu lub rozłączeniu i ponownym sparowaniu słuchawek.
Działanie funkcjonalne
Raportowanie pozycji głowy
- Informacje o pozycji głowy w postaci współrzędnych x, y i z wysyłane z zestawu słuchawkowego na urządzenie z Androidem muszą szybko i dokładnie odzwierciedlać ruchy głowy użytkownika.
- Raportowanie pozycji głowy przez łącze Bluetooth musi być zgodne z protokołem zdefiniowanym w HID.
- Zestaw słuchawkowy musi wysyłać informacje o śledzeniu ruchu głowy na telefon z Androidem tylko wtedy, gdy użytkownik włączy śledzenie ruchu głowy w interfejsie ustawień urządzenia Bluetooth.
Wydajność
Czas oczekiwania
Opóźnienie śledzenia ruchu głowy to czas, jaki upływa od momentu, w którym jednostka pomiaru bezwładności (IMU) zarejestruje ruch głowy, do momentu, w którym przetworniki słuchawek wykryją zmianę dźwięku spowodowaną tym ruchem. Opóźnienie monitorowania ruchów głowy nie może przekraczać 150 ms.
Częstotliwość raportowania pozycji głowy
Gdy śledzenie ruchu głowy jest aktywne, zestaw słuchawkowy musi zgłaszać pozycję głowy w zalecanych odstępach czasu wynoszących około 20 ms. Aby uniknąć uruchomienia logiki wykrywania nieaktualnych danych wejściowych na telefonie podczas wahań transmisji Bluetooth, maksymalny czas między dwoma aktualizacjami nie może przekraczać 40 ms.
Optymalizacja zasilania
Aby zoptymalizować zużycie energii, zalecamy, aby implementacja korzystała z mechanizmów przełączania kodeka Bluetooth i wyboru trybu opóźnienia udostępnianych przez interfejsy audio HAL i Bluetooth audio HAL.
Implementacje AOSP platformy audio i stosu Bluetooth obsługują już sygnały sterujące przełączaniem kodeków. Jeśli implementacja OEM korzysta z podstawowego HAL audio w przypadku dźwięku Bluetooth, czyli z trybu odciążania kodeka, OEM musi zadbać o to, aby HAL audio przekazywał te sygnały między HAL audio a stosem Bluetooth.
Przełączanie kodeków
Gdy włączony jest dynamiczny dźwięk przestrzenny i śledzenie ruchów głowy, używaj kodeka o niskiej latencji, np. Opus. Podczas odtwarzania treści audio bez dźwięku przestrzennego używaj kodeka o niskim poborze mocy, takiego jak Advanced Audio Coding (AAC).
Podczas przełączania kodeków przestrzegaj tych reguł:
- Śledź tylko aktywność w tych strumieniach wyjściowych HAL audio:
- Dedykowane wyjście przestrzenne
- strumienie specyficzne dla multimediów, takie jak głęboki bufor lub odciążone odtwarzanie skompresowanych treści;
Gdy wszystkie odpowiednie strumienie są nieaktywne i rozpoczyna się strumień przestrzenny, uruchom strumień Bluetooth z parametrem
isLowLatencyustawionym natrue, aby określić kodek o niskiej latencji.Gdy wszystkie odpowiednie strumienie są nieaktywne i rozpoczyna się strumień multimediów, uruchom strumień Bluetooth z parametrem
isLowLatencyustawionym nafalse, aby określić kodek o niskim poborze mocy.Jeśli strumień multimediów jest aktywny i rozpoczyna się strumień przestrzenny, uruchom ponownie strumień Bluetooth z ustawieniem
isLowLatencynatrue.
Słuchawki muszą obsługiwać dekodery o niskim opóźnieniu i niskim zużyciu energii oraz implementować standardowy protokół wyboru kodeka.
Dostosowywanie trybu opóźnienia
Dostosowanie trybu opóźnienia następuje po wybraniu kodeka niskiego opóźnienia.
W zależności od tego, czy śledzenie ruchu głowy jest włączone, czy wyłączone, dostosowanie trybu opóźnienia wykorzystuje dostępne mechanizmy, aby zmniejszyć lub zwiększyć opóźnienie i osiągnąć najlepszy kompromis między opóźnieniem, zużyciem energii i jakością dźwięku. Gdy dźwięk przestrzenny i śledzenie ruchów głowy są włączone, wybierany jest tryb niskiego opóźnienia. Gdy dźwięk przestrzenny jest włączony, a śledzenie ruchów głowy jest wyłączone, wybierany jest tryb bez opóźnień. Dostosowanie opóźnienia zapewnia znaczne oszczędności energii i większą stabilność połączenia audio Bluetooth, gdy wymagany jest tylko statyczny dźwięk przestrzenny. Najczęstszym mechanizmem dostosowywania opóźnienia jest zmniejszenie lub zwiększenie rozmiaru bufora drgań w słuchawkach Bluetooth.
Informacje o dostosowywaniu trybu opóźnienia w przypadku LE Audio znajdziesz w sekcji Śledzenie ruchów głowy w LE Audio.