Android Audio (6) : 통합 데이터 흐름도 (녹음 + 재생)
3. 통합 데이터 흐름도 (녹음 + 재생) 아래는 녹음과 재생의 전체 흐름을 통합한 텍스트 기반 다이어그램입니다. 데이터의 이동 방향과 주요 컴포넌트를 보여줍니다. 흐름 설명 녹음 : 마이크에서 아날로그 신호 → Audio HAL → PCM 데이터. AudioFlinger가 PCM을 AudioRecord로 전달. 앱에서 PCM 처리(인코딩, 저장, 스트리밍). 재생 : 파일/스트림 → MediaPlayer/ExoPlayer/AudioTrack → PCM 데이터. AudioFlinger가 PCM을 믹싱 → Audio HAL. AudioSink로 출력(스피커, 헤드셋). 공통 : AudioFlinger: 입력/출력 스트림 믹싱 및 라우팅. Audio HAL: 하드웨어와 소프트웨어 간 데이터 전달. AudioManager: 오디오 포커스, 볼륨, 장치 관리. 4. 주요 컴포넌트와 역할 AudioSource : 입력 소스 선택(마이크, 블루투스 등). AudioRecord : PCM 데이터 캡처(녹음). MediaPlayer/ExoPlayer : 파일/스트림 재생. AudioTrack : PCM 데이터 직접 재생. AAudio/Oboe : 저지연 오디오 처리. AudioFlinger : 오디오 스트림 믹싱 및 라우팅. Audio HAL : 하드웨어 인터페이스. AudioManager : 오디오 제어(볼륨, 포커스, 장치). AudioEffect : 오디오 효과(이퀄라이저, 리버브). AudioAttributes : 스트림 용도 정의. AudioDeviceInfo : 입출력 장치 정보. 5. 추가 고려사항 지연 시간 최적화 : AAudio/Oboe 사용, 버퍼 크기 최소화(getMinBufferSize()). 예: 실시간 오디오 앱(게임, VOIP)에서 10ms 이하 지연 목표. 기기 호환성 : 안드로이드 버전별 API 차이(AAudio: API 26+). 하드웨어 코덱/샘플...