OpenSL ES

참고: 개발자라면 오픈소스 Oboe 라이브러리 사용을 고려해 볼만 합니다. 이 라이브러리는 GitHub에서 이용할 수 있습니다. Oboe는 AAudio와 매우 유사한 API를 제공하는 C++ 래퍼입니다. Oboe는 AAudio를 사용할 수 있는 경우 AAudio를 호출하고 사용할 수 없는 경우에는 OpenSL ES로 대체합니다.

NDK 패키지에는 Khronos Group OpenSL ES™ 1.0.1 API 사양의 Android 전용 구현이 포함되어 있습니다. 이 라이브러리를 사용하면 작성 중인 앱(신시사이저, 디지털 오디오 워크스테이션, 노래방, 게임 또는 기타 실시간 앱)과 상관없이 C 또는 C++를 통해 지연 시간이 짧은 고성능 오디오를 구현할 수 있습니다.

OpenSL ES™ 표준은 Android 자바 프레임워크에 있는 MediaPlayerMediaRecorder의 오디오 기능과 유사한 기능을 제공합니다. 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 구현과 참조 사양 간 차이점, Android 호환성을 위한 추가 확장 프로그램을 순서대로 설명합니다. 마지막으로 OpenSL ES를 제대로 구현하는 데 도움이 되는 몇 가지 추가 프로그래밍 주의사항을 소개합니다.