2010-05-04 2 views
5

이 질문은 이전에 묻는 것 같습니다. 안드로이드에 업데이트가 있는지 여부를 알고 싶습니다.NDK를 통한 Android의 저 지연 오디오

저 지연 오디오 I/O (응용 프로그램 < 10 밀리 초)와 관련된 오디오 응용 프로그램을 작성할 계획입니다. SDK에서 제안한 방법을 기반으로하는 것이 불가능한 것 같습니다. 그러는 동안 NDK를 사용하여이 목표를 달성 할 수있는 방법이 있습니까?

답변

4

현재 안드로이드 사운드 시스템에 액세스하기위한 라이브러리가 NDK에 없습니다. 적어도 안전하다고 생각되는 라이브러리는 없습니다 (안정적입니다).

AudioTrack 클래스로 테스트 해 보셨습니까? 현재 사용 가능한 가장 낮은 대기 시간 옵션입니다.

+0

문제는 AudioTrack 클래스의 최소 버퍼 크기 제한입니다. 이 크기는 너무 커서 지연이 적은 오디오를 구현할 수 없습니다. 그리고 실제 장치 (Motorola Droid)에서는 표시된 버퍼 크기가 에뮬레이터보다 높습니다. – user332530

+0

@hkhauke AudioTrack 버퍼의 크기는 오디오 재생 대기 시간에 영향을 미치지 않습니다. 다시 말해, MODE_STREAM을 설정하면 재생을 시작할 수 있도록 AudioTrack 버퍼를 채울 필요가 없습니다. 진짜 질문은 안드로이드의 기본 오디오 시스템이 얼마나 빠른지, 오디오 하드웨어 자체가 얼마나 빠를 것인가입니다. – Mark

+0

그 힌트를 가져 주셔서 감사합니다, 나는 그 모드를 테스트 할 것입니다! – user332530

0

은 현재 2 주 API는 오디오에 대한 NDK에 노출됩니다 OpenSL는 OpenMAX AL (안드로이드 2.3 API 레벨 9에서) (안드로이드 4.0 API 레벨에서 14)

좋은 시작 지점은 OpenSL의 API에 대해 배우고 Android의 경우 NDK의 샘플 코드에 있습니다 : "native-audio"샘플을보십시오. 공연에 대한

측정은이 블로그에서 만들어진 : 얻을 요약으로 http://audioprograming.wordpress.com/

최선의 대기 시간은 멀리 대상에서 약 100-200ms했다. 그러나 Android NDK 문서에서 OpenSL 인터페이스는 장래에 낮은 대기 시간을 향한 HW 가속화의 이점을 최대한 누릴 수있는 인터페이스입니다.

관련 문제