안드로이드 개발 질문/답변
(글 수 45,052)
MediaPlayer로 chunk 단위로 연속 플레이를 하려면 어떻게 해야 하나요?
전체 Video 파일(mp4)은 1MB 단위의 chunk로 나뉘어져 인터넷의 여러 노드에 분산되어 있습니다. 플레이어는 다른 노드로부터 (예를 들면) HTTP를 통해 chunk를 다운로드 받습니다. 대충 처음 10개쯤 chunk를 받으면 재생을 시작합니다. MediaPlayer 클래스를 이용하여, 첫번째 chunk 파일을 재생하도록 합니다. 첫번째 chunk 재생이 끝나면 OnCompletionListener 가 불리도록 하면, 여기서 두번째 chunk 파일을 재생하도록 합니다. 이와 같은 과정을 반복하면서 재생 합니다. 추가적인 chunk는 별도 쓰레드로 계속 다른 노드들로부터 가져오고요. 플레이가 완료된 chunk는 삭제합니다.
이렇게 하면 chunk 가 바뀔때 화면이 끊기거나 하지 않을까요? 두번째 chunk 부터는 mp4헤더 같은 것이 없을텐데 문제가 없을까요? MediaPlayer 클래스가 부적절하다면 다른 클래스를 추천해 주시거나, 뭔가 힌트를 주셨으면 합니다.
2010.01.30 08:33:09
비디어 재생에 있어 다른 클래스는 없구요. 제가 직접 해보지는 않았지만 그냥 아이디어만 내어보면.
안드로이드는 프로그레시브 다운로드를 지원해서 웹서버에 있는 파일을 다운로드 받는 동시에 플레이할 수 있습니다. 물론 해당 미디어 파일이 프로그레시브 다운로드를 지원하는 형태로 작성되어 있어야 합니다. 이거를 이용한다면 파일을 다운로드 받으면서 로컬 웹서버를 하나 돌리고 실제 플레이어는 로컬 웹서버에 프로그레시브 다운로드를 연결하면 되지않을까 생각되네요.
그냥 아이디어일뿐 다른아이디어 있으면 말씀주세요.