안드로이드 개발 질문/답변
(글 수 45,052)
RelativeLayout ll = (RelativeLayout) findViewById(R.id.MainLayout);
ll.setDrawingCacheEnabled(true);
Bitmap b = ll.getDrawingCache();
ImageView _img = (ImageView)findViewById(R.id.bg_capture);
_img.setImageBitmap(b);
위와 같이 스크린샷을 하려 합니다.
일반 화면은 잘 되는데
비디오뷰를 재생시키고 스크린샷을 하면 비디오 뷰 부분만 까맣게 나오고 나머지는 잘 캡쳐가 됩니다.
비교해보기 위해, 비디오 플레이어 기본 앱으로 동영상을 플레이한 후
홈버튼과 전원버튼을 동시에 눌러 캡쳐해 보았습니다.
이 때는 비디오도 캡쳐가 잘 됩니다.
근데 videoview를 통해 구현한 제 비디오 플레이에서는
홈버튼과 전원버튼을 동시에 눌러도 캡쳐가 잘 안되고 위의 코딩과 같이 캡쳐를 하여도 검은색화면만 나옵니다.
기본 비디오 플레이어 앱과 비교했을 때
다른 점이 무엇이길래 기본앱은 되고, 제 앱은 캡쳐가 안되는 것인가요?
조언 부탁드립니다.
기본 비디오 플레이어는 어떻게 구현 했는지 정확히는 모르겠지만
혹시 FFMPEG 같은 것을 이용해서 직접 소프트웨어 랜더링 방식으로 그린 것이라면 방식이 좀 다르지요.
제가 알기로 안드로이드의 VideoView 의 경우 지원하는 코덱이 휴대폰마다 다 다를 수 있기 때문에,
일반적으로 비디오 플레이어를 만들때는 FFMPEG 를 이용해서 많이 만든다고 알고 있습니다.
이런 것처럼 비디오 플레이어도 구현 방식이 다 다를 수 있기 때문에 캡쳐가 될 수도 있고 안될 수도 있을 것 같네요.