Opóźnienie dźwięku dla twórców aplikacji

Aby uzyskać możliwie najniższe opóźnienie dźwięku, zalecamy użycie oboju .

Obój

Obój wykorzystuje natywny dźwięk i jest zbudowany na AAudio dla Androida 8.1+ i OpenSL ES dla starszych wersji Androida. Aby osiągnąć najniższe możliwe opóźnienie dla urządzenia, ustaw setPerformanceMode(oboe::PerformanceMode::LowLatency) i setSharingMode(oboe::SharingMode::Exclusive) . Więcej informacji na temat oboju można znaleźć w podręczniku Pierwsze kroki , README.md i Pełnym przewodniku . Przykładową aplikację wykorzystującą obój znajdziesz w aplikacji Soundboard .

Uwaga: jeśli używasz AudioTrack do tworzenia wyjściowych strumieni audio w Javie dla aplikacji wrażliwych na opóźnienia, użyj trybu PERFORMANCE_MODE_LOW_LATENCY .

Lista kontrolna wdrożenia

Aby użyć natywnego dźwięku Androida:

  1. Pobierz i zainstaluj Android NDK .
  2. Postępuj zgodnie z instrukcją Pierwsze kroki dla oboju.
  3. Wywołaj setPerformanceMode(oboe::PerformanceMode::LowLatency) i setSharingMode(oboe::SharingMode::Exclusive) w konstruktorze oboju.
  4. Użyj zalecanego natywnego rozmiaru bufora i częstotliwości próbkowania zwracanej przez android.media.AudioManager.getProperty(java.lang.String) .

    Uwaga: ten sam rozmiar bufora i częstotliwość próbkowania powinny być również używane jako dane wejściowe.

  5. Staraj się, aby procedury obsługi wywołań zwrotnych były krótkie, bez nadmiernego użycia procesora i nieograniczonego blokowania. Unikaj odwracania priorytetów.
  6. Rozważ użycie algorytmów nieblokujących do komunikacji między procedurami obsługi wywołań zwrotnych wejścia i wyjścia oraz między procedurami obsługi wywołań zwrotnych a resztą aplikacji.

Inne zasoby

źródło.android.com

Witryna source.android.com jest przeznaczona głównie dla producentów OEM budujących urządzenia z systemem Android oraz dostawców SoC, którzy dostarczają komponenty tym producentom OEM.

Jednakże w tej witrynie znajduje się mnóstwo przydatnych informacji na temat opóźnień, więc warto je przejrzeć. Zobacz artykuły na stronie Opóźnienie dźwięku.

android-ndk

Jeśli masz pytania dotyczące korzystania z natywnego dźwięku w systemie Android, możesz zadać je w grupie dyskusyjnej android-ndk .

Zgłaszaj błędy na oboju

Jeśli masz problemy z używaniem oboju, możesz zgłosić błąd .

Filmy

Pierwsze kroki z obojem
Dźwięk o niskim opóźnieniu — ponieważ Twoje uszy są tego warte
Szczyt deweloperów Androida 2018.
Zwycięstwo na Androidzie — jak zoptymalizować aplikację audio na Androida
Wyzwanie dla programistów Androida 2018.
Wysoka jakość dźwięku w systemie Android (Google I/O 2013)
Cały film dotyczy opóźnień.
Tworzenie wspaniałych wrażeń multimedialnych na Androidzie (Google I/O 2014)
Pierwsze 14 minut dotyczy ogólnie dźwięku, a w szczególności opóźnienia wejścia.
Opóźnienie dźwięku: rozmiary buforów (100 dni Google Dev)
Opisuje związek między opóźnieniem dźwięku, rozmiarami buforów i planowaniem zadań.