안드로이드 개발 질문/답변
(글 수 45,052)
안녕하세요 아즈라엘 입니다.
이번에 질문은 MediaPlayer 인데요.. SurfaceHolder를 사용하게 되면
생애주기가 onPuase ~ onResume 시에 surfaceDestroyed ~ surfaceCreated 가 다시 호출됩니다.
아래 apiDemos 에서 Activity onPause가 되면 onDestroy와 같은 기능을 하는데요..
http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/media/MediaPlayerDemo_Video.html
혹시 onPuase ~ onResume 시에 surfaceView 에서 화면에 대한 context 들이 살아있게 할 수 있는 방법은 없나요?
그냥 화면 생에 주기에 맞춰 onPause시에 죽여야 하는지 의문이네요..
Player 를 상속받아서 그 안에 해결해야 하는게 있는데 죽었다 살았다 하면 문제가 좀 생깁니다. ㅠㅠ
onPause시 protected void onWindowVisibilityChanged(int visibility) 가 불리면서 surfaceDestroyed가 되길래
onWindowVisibilityChanged를 overide해서 Surface가 종료 안되어야 할 땐 그냥 return하게 했더니 해결은 되었습니다.
단지 편법인지라. 다른 문제가 발생할 수 있을 듯 해서 정작 제 코드에는 반영 못한 상태입니다.
큰 문제는 없을 듯 합니다만.. 제가 장담을 못하는지라.. =ㅇ=;; 위험을 감수하실 수 있다면, 설명해드린 방법을 사용하시면 됩니다./