마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

MediaCodec을 이용한 AudioTrack 재생 시 질문입니다.

0 추천
안녕하세요.

MediaCodec을 이용하여 mp3 파일을 AudioTrack으로 재생하고 있습니다.

다만, mp3 파일은 단말에 저장된 데이터가 아니며 TCP를 통해 쪼개진 Stream으로 전달되고 있습니다.

Stream을 전부 전송받은 뒤 파일을 재생하면 MediaPlayer를 통해 간단히 해결되겠지만..

Stream을 받는 즉시 재생이 필요한 상황이라 AudioTrack을 통해 재생시키게 되었습니다.

 

현재, Stream으로 받은 데이터를 Queue에 저장하여 순차적으로 재생시키고 있는데...

문제는 각 Stream 별로 codec InputBuffer와 OutputBuffer를 갖게 되어,

한 Stream이 재생되고 다음 Queue의 Stream이 재생될 때, MediaCodec.INFO_OUTPUT_FORMAT_CHANGED이 호출되어 자연스럽게 재생되지 않는 문제가 발생하는데요..

 

혹시 여러개의 Stream을 자연스럽게 재생시킬 수 있는 방법을 아시는 분은 도움 부탁드립니다.

 

감사합니다.
libre2k (7,420 포인트) 님이 2016년 3월 24일 질문
큐잉하세요..  채널*비트레이트* 일정 시간 만큼 버퍼가 쌓이면 AudioTrack write를 호출하여 샘플 사이즈만 큼 계속 적고,  부족하면, 적지 않고 대기 하는 방식으로 구현 하시면 될 겁니다.

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...