고성능 오디오 앱에는 일반적으로 사운드를 재생하거나 녹음하는 단순한 기능 이상이 필요합니다. 이러한 앱에는 반응형 실시간 시스템 동작이 요구됩니다. 몇 가지 일반적인 사용 사례는 다음과 같습니다.
디지털 오디오 워크스테이션
신시사이저
드럼 머신
음악 학습 앱
노래방 앱
DJ 믹싱
오디오 효과
영상/음성 회의
이 섹션에서는 오디오 지연 시간을 최소화하는 일반 원칙을 설명합니다.
또한 최적의 샘플링 레이트를 선택하고 부동 소수점 숫자를 사용해 오디오 데이터를 나타낼 때의 장단점을 고려하는 데 도움이 되는 오디오 샘플링 권장사항을 제공합니다.
이 섹션의 나머지 부분에서는 고성능 오디오 애플리케이션을 작성할 때 사용할 수 있는 두 가지 라이브러리를 설명합니다.
OpenSL ES는 Khronos Group OpenSL ES™ API 사양의 Android 전용 구현입니다.
OpenSL ES는 새로운 디자인 환경에는 권장되지 않습니다. 앱 개발자 및 미들웨어 제공자는 Oboe 또는 AAudio 중 한 가지를 네이티브 오디오 인터페이스로 타겟팅해야 합니다.
AAudio는 OpenSL ES 라이브러리의 경량 네이티브 Android 대안으로 개발되었습니다. AAudio API는 OpenSL ES보다 작고 사용하기도 쉽습니다.
이 페이지에 나와 있는 콘텐츠와 코드 샘플에는 콘텐츠 라이선스에서 설명하는 라이선스가 적용됩니다. 자바 및 OpenJDK는 Oracle 및 Oracle 계열사의 상표 또는 등록 상표입니다.
최종 업데이트: 2025-07-26(UTC)
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-26(UTC)"],[],[],null,["# High-performance audio\n\nHigh performance audio apps typically require more functionality than the simple\nability to play or record sound. They demand responsive realtime system\nbehavior. Some typical use cases include:\n\n- Digital audio workstations\n- Synthesizers\n- Drum machines\n- Music learning apps\n- Karaoke apps\n- DJ mixing\n- Audio effects\n- Video/audio conferencing\n\nThis section explains the general principles of minimizing\n[audio latency](/ndk/guides/audio/audio-latency).\nIt also provides [advice about audio sampling](/ndk/guides/audio/sampling-audio),\nto help you choose the optimal sample rate and consider the pros and cons of using floating-point\nnumbers to represent your audio data.\n\nThe rest of the section describes the two libraries that\nare available for writing high-performance audio applications:\n\n- [OpenSL ES](/ndk/guides/audio/opensl) is an Android-specific implementation of the OpenSL ES™ API specification from the Khronos Group. OpenSL ES is not recommended for new designs. App developers and middleware providers should target either Oboe or AAudio as the native audio interface.\n- [AAudio](/ndk/guides/audio/aaudio/aaudio) was developed as a lightweight, native Android alternative to the OpenSL ES library. The AAudio API is smaller and easier to use than OpenSL ES.\n\n| **Note:** Developers should consider using the open source Oboe library which is available on [GitHub](https://github.com/google/oboe). Oboe is a C++ wrapper that provides an API that closely resembles AAudio. It calls AAudio when it is available, and falls back to OpenSL ES if AAudio is not available.\n\nAdditional resources\n--------------------\n\nTo learn more, take advantage of the following resources:\n\n\u003cbr /\u003e\n\n### Sample\n\n- [Oboe Samples](https://github.com/google/oboe/tree/master/samples)\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n### Codelabs\n\n- [Making Waves Part 1 - Build a Synthesizer](/codelabs/making-waves-1-synth)\n- [Making More Waves - Sampler](/codelabs/making-waves-2-sampler)\n- [Build a Musical Game using Oboe](https://developer.android.com/codelabs/musicalgame-using-oboe)\n\n\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n### Videos\n\n- [Getting Started with Oboe](http://bit.ly/Introducing-Oboe)\n- [Best Practices for Android Audio (Google I/O '17)](https://www.youtube.com/watch?v=C0BPXZIvG-Q)\n\n\u003cbr /\u003e"]]