Android Audio (2) : 재생 (Playback)
2. 오디오 재생(Playback) 단계 재생은 파일, 스트림, 또는 저장된 데이터를 출력 장치(스피커, 헤드셋 등)로 보내는 과정입니다. 2.1 입력 소스 준비 소스 종류 : 로컬 파일 : MP3, WAV, AAC 등(예: /storage/emulated/0/music.mp3 ). 원격 스트림 : HTTP/RTSP 스트림(예: 인터넷 라디오). PCM 데이터 : 앱 내에서 생성된 원시 데이터. API 선택 : MediaPlayer : 고수준 API, 파일/스트림 재생에 적합. 예: MediaPlayer.setDataSource(path) → prepare() → start() . ExoPlayer : 적응형 스트리밍(HLS, DASH) 및 커스텀 재생에 최적. 예: SimpleExoPlayer 로 MediaSource 설정. AudioTrack : PCM 데이터 직접 재생(저수준). 예: AudioTrack.write() 로 PCM 버퍼 작성. 2.2 오디오 디코딩 디코딩 : 압축된 오디오 파일(MP3, AAC 등)을 PCM으로 변환. MediaPlayer / ExoPlayer 는 내부적으로 디코딩 처리. MediaCodec : 저수준 디코딩 시 사용(예: MP3 → PCM). 고려사항 : 코덱 호환성 확인(안드로이드 기기별 지원 코덱 다름). DRM 처리(예: Widevine for protected content). 2.3 오디오 믹싱 및 출력 AudioFlinger : 안드로이드의 오디오 믹서로, 여러 스트림을 믹싱. AudioAttributes : 스트림 용도 정의(예: USAGE_MEDIA , USAGE_ALARM ). AudioEffect : 이퀄라이저, 리버브 등 효과 적용 가능. 출력 장치 : AudioDeviceInfo : 스피커, 헤드셋, 블루투스 등 출력 장치 정보. AudioManager.setSpeakerphoneOn() 등으로 출력...

Comments
Post a Comment