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:
- Pobierz i zainstaluj Android NDK .
- Postępuj zgodnie z instrukcją Pierwsze kroki dla oboju.
- Wywołaj
setPerformanceMode(oboe::PerformanceMode::LowLatency)
isetSharingMode(oboe::SharingMode::Exclusive)
w konstruktorze oboju. - 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.
- 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.
- 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ń.