안녕하세요-

여러개의 media 파일이 있을 때,

( 1.mp4, 2.mp4, 3.mp4, 4.mp4 .. )


MediaPlayer를 사용해서 연속적으로 이 파일들을 재생하고 싶습니다.

MediaPlayer의 기본 기능을 사용해서

첫번째 파일 재생완료 ---> setDataSource(두번째 파일)  ---> play . -->...

의 방식으로 했더니 파일과 파일이 바뀌는 순간에 딜레이가 생기는군요.



딜레이나 화면의 깜빡임 없이, 자연스럽게 다음 파일로 넘어가도록 하고 싶습니다..



SurfaceView 2개, MediaPlayer(mp1, mp2) 를 2개를 사용해서 시도를 해 보았습니다.


Layout은 다음과 같이 구성했습니다.

FrameLayout ---------------LinearLayout1 -------surfaceView1   (mp1)
                           |
                           |--------LinearLayout2 -------surfaceView2   (mp2)


처음 프로그램 시작시,

SurfaceView1 의 surfaceCreated() 에서 mp1을 선언하고 playlist의 첫번째 파일을 재생시킵니다.

SurfaceView2 의 surfaceCreated() 에서는 mp2를 선언하고, playlist의 두번째 파일을 재생시키자마자 pause()시킵니다.


이후,


mp1의 재생이 끝나면, mp1을 감싸고 있는 LinearLayout1을 setLayoutParam을 써서 넓이와 높이를 1로 만들어버리고

(mp2의 재생 화면이 나타납니다.)

mp2를 재생시키고 mp1은 3번째 파일을 재생할 준비를 합니다..


mp2가 두번째 파일의 재생이 끝나면, LinearLayout1을 setLayoutParam을 써서 넓이와 높이를 fill_parent로 바꾸면,

mp1의 재생화면이 다시 나타나게 됩니다.


현재 문제는,

mp1 재생 끝  ---------->  mp2 으로 전환 시에는 깜빡임이 없지만

mp2 재생 끝 -----------> mp1으로 전환 시에는 작은 깜빡임이 생긴다는 것입니다..


MediaPlayer 자체가 뻑나는 경우도 생기는것 같네요..



혹시 좋은 아이디어 있으신분은 도움 부탁드립니다..ㅜ

surfaceView의 setZOrderOnTop 이나 setZOrderMediaOverlay 가 관련이 있는것 같기는 한데

사용방법을 모르겠습니다..