참고: 개발자는 GitHub에서 제공되는 오픈소스 Oboe 라이브러리 사용을 고려해야 합니다. Oboe는 AAudio와 매우 유사한 API를 제공하는 C++ 래퍼로, Oboe는 AAudio를 사용할 수 있을 때 AAudio를 호출하고, AAudio를 사용할 수 없으면 OpenSL ES로 대체합니다.
NDK 패키지에는 Khronos Group OpenSL ESTM 1.0.1 API 사양의 Android 전용 구현이 포함되어 있습니다. 이 라이브러리를 사용하면 작성 중인 앱(신시사이저, 디지털 오디오 워크스테이션, 노래방, 게임 또는 기타 실시간 앱)에 상관없이 C 또는 C++를 사용하여 지연 시간이 짧은 고성능 오디오를 구현할 수 있습니다.
OpenSL ESTM 표준은 Android 자바 프레임워크에 있는 MediaPlayer
및 MediaRecorder
API의 오디오 기능과 유사한 기능을 제공합니다. OpenSL ES는 C 언어 인터페이스뿐만 아니라 C++ 바인딩까지 제공하므로 두 언어 중 하나로 작성된 코드에서 API를 호출할 수 있습니다.
OpenSL ES API를 사용하여 앱의 오디오 성능을 개발하고 개선할 수 있습니다.
표준 OpenSL ES 헤더 <SLES/OpenSLES.h> 및 <SLES/OpenSLES_Platform.h>는 오디오 입력 및 출력을 허용합니다. 추가 Android 전용 기능은 <SLES/OpenSLES_Android.h> 및 <SLES/OpenSLES_AndroidConfiguration.h>를 참조하세요.
이 섹션에서는 먼저 OpenSL ES를 앱에 통합하는 방법을 설명합니다. 그런 다음 OpenSL ES의 Android 구현과 관련하여 알아야 할 사항을 설명합니다. 먼저 이 구현과 참조 사양의 차이점에 초점을 맞춘 다음 Android 호환성을 위한 추가 확장 프로그램에 초점을 맞춥니다. 마지막에는 OpenSL ES를 제대로 구현하는 데 도움이 되는 몇 가지 추가 프로그래밍 참고 사항이 있습니다.