앱 개발자를 위한 오디오 지연 시간

오디오 지연 시간을 가능한 최소화하려면 Oboe를 사용하는 것이 좋습니다.

Oboe

Oboe는 네이티브 오디오를 사용하며, Android 8.1 (API 수준 27) 이상 및 OpenSL ES를 기반으로 합니다. 기기의 지연 시간을 최소화하려면 setPerformanceMode(oboe::PerformanceMode::LowLatency)setSharingMode(oboe::SharingMode::Exclusive)를 설정하세요. Oboe에 관한 자세한 내용은 시작 가이드, README.md, 전체 가이드를 참고하세요. Oboe를 사용하는 샘플 앱에 관해서는 Soundboard 앱을 참고하세요.

지연 시간에 민감한 앱을 위해 Java에서 출력 오디오 스트림을 만들 때 AudioTrack을 사용하는 경우 PERFORMANCE_MODE_LOW_LATENCY 모드를 사용하세요.

구현 체크리스트

Android 네이티브 오디오를 사용하는 방법:

  1. Android NDK를 다운로드한 후 설치합니다.
  2. Oboe의 시작 가이드를 따릅니다.
  3. Oboe 빌더에서 setPerformanceMode(oboe::PerformanceMode::LowLatency)setSharingMode(oboe::SharingMode::Exclusive)를 호출합니다.
  4. android.media.AudioManager.getProperty(java.lang.String)에서 반환되는 권장 네이티브 버퍼 사이즈와 샘플링 레이트를 사용합니다.

  5. 콜백 핸들러를 짧게 유지하고, 과도한 CPU 사용이나 무제한 차단을 피합니다. 우선순위 역전을 피합니다.

  6. 비차단 알고리즘을 사용하여 입력 및 출력 콜백 핸들러, 그리고 콜백 핸들러와 애플리케이션의 나머지 간에 통신하는 방식을 고려합니다.

android-ndk

Android 네이티브 오디오 사용 방법에 관한 질문이 있는 경우 토론 그룹인 android-ndk에 참여하세요.

Oboe 버그 신고

Oboe 사용 관련 문제가 있는 경우 버그를 신고하세요.

동영상