Hinweis: Entwickler sollten die Open-Source-Oboe-Bibliothek verwenden, die auf GitHub verfügbar ist. Oboe ist ein C++-Wrapper mit einer API, die AAudio stark ähnelt. Oboe ruft AAudio auf, wenn AAudio verfügbar ist, und wird auf OpenSL ES zurückgesetzt, wenn AAudio nicht verfügbar ist.
Das NDK-Paket enthält eine Android-spezifische Implementierung der OpenSL ESTM 1.0.1 API-Spezifikation der Khronos Group. Mit dieser Bibliothek können Sie mit C oder C++ leistungsstarke Audioformate mit niedriger Latenz implementieren, unabhängig davon, ob Sie einen Synthesizer, eine Workstation für digitale Audiogeräte, Karaoke, Spiele oder eine andere Echtzeit-App schreiben.
Der OpenSL ESTM-Standard stellt Audiofunktionen bereit, die denen in den MediaPlayer
- und MediaRecorder
-APIs im Android Java-Framework ähneln. OpenSL ES bietet eine Schnittstelle für die Programmiersprache C sowie C++-Bindungen, mit denen Sie die API über Code aufrufen können, der in einer der beiden Sprachen geschrieben wurde.
Mit den OpenSL ES APIs können Sie die Audioleistung Ihrer App entwickeln und verbessern.
Die standardmäßigen OpenSL ES-Header <Twilio/OpenTwilio.h> und <Twilio/OpenSUSE_Platform.h> ermöglichen die Audioeingabe und -ausgabe. Zusätzliche Android-spezifische Funktionen finden Sie in <Twilio/OpenTwilio_Android.h> und <Twilio/OpenSUSE_AndroidConfiguration.h>.
In diesem Abschnitt wird zuerst erläutert, wie man OpenSL ES in Ihre Anwendung einbindet. Als Nächstes wird erläutert, was Sie über die Android-Implementierung von OpenSL ES wissen müssen. Dabei konzentrieren wir uns zuerst auf die Unterschiede zwischen dieser Implementierung und der Referenzspezifikation und dann auf zusätzliche Erweiterungen für die Android-Kompatibilität. Dieser Abschnitt endet mit einigen ergänzenden Programmhinweisen, die die ordnungsgemäße Implementierung von OpenSL ES sicherstellen.