Aplikacje audio o wysokiej wydajności zwykle wymagają większej funkcjonalności niż proste możliwości odtwarzania i nagrywania dźwięku. Wymagają responsywnego działania systemu w czasie rzeczywistym. Oto niektóre typowe przypadki użycia:
- Cyfrowe stacje robocze audio
- Syntezatory
- Automaty perkusyjne
- Aplikacje do nauki muzyki
- Karaoke
- Miksowanie DJ-a
- Efekty dźwiękowe
- Rozmowy wideo/audio
W tej sekcji omawiamy ogólne zasady minimalizowania opóźnienia dźwięku. Znajdziesz w nim też wskazówki dotyczące próbkowania audio, które pomogą Ci wybrać optymalną częstotliwość próbkowania, a także poznać wady i zalety używania liczb zmiennoprzecinkowych do przedstawiania danych audio.
W dalszej części sekcji omawiamy 2 biblioteki dostępne do tworzenia aplikacji audio o wysokiej wydajności:
- OpenSL ES to implementacja specyfikacji interfejsu OpenSL ESTM API opracowanych przez Khronos Group, specyficznych dla Androida. Format OpenSL ES nie jest zalecany w przypadku nowych projektów. Deweloperzy aplikacji i dostawcy oprogramowania pośredniczącego powinni kierować reklamy na Oboe lub AAudio jako natywny interfejs audio.
- Aplikacja AAudio została opracowana jako lekka, natywna alternatywa dla biblioteki OpenSL ES na Androida. Interfejs AAudio API jest mniejszy i łatwiejszy w użyciu niż OpenSL ES.
Dodatkowe materiały
Aby dowiedzieć się więcej, skorzystaj z tych materiałów:
Próbka
Ćwiczenia z programowania
- Tworzenie fal, część 1 – tworzenie syntezatora
- Making More Waves – Sample
- Utwórz grę muzyczną z użyciem obóju