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

백그라운드에서의 카메라 구동 관련해서 질문드립니다.

0 추천
안녕하세요.

다름이 아니고, 현재 영상처리를 통해 얻어낸 정보(색이라던가 움직임이라던가) 등등으로 폰 UI를 자동적으로 조작하는 앱을 개발하고 있는 학생입니다.(공모전용)

그런데, 현재 제가 원하는 기능을 실현하기 위해서는

1. 카메라가 백그라운드에서 동작해서

2. 다른 앱을 구동하던가, 다른 Activity가 켜지던가, 홈버튼을 눌러서 메인으로 빠지던가 그런거 상관없이 실시간으로 얻어낸 영상데이터를 처리해서

3. 데이터를 실시간으로 얻어내야 합니다.(여기서 UI 조작은 성공했네요)

그래서 Service 상에서 카메라를 구동하여 실시간으로 영상을 얻어내는 방법을 고려하고 있습니다.

하지만, 실질적으로 Android 상에서 SurfaceView(같은 Preview를 보여주는 무언가)가 없으면 카메라 영상 데이터에 접근을 못하는 것을 알게 되었습니다.

현재 해외 포럼을 검색해서 얻은 결과는

Dummy SurfaceView를 사용하는 것 : 안됩니다 ㅠㅠ(기종 별로 다른 것 같네요)

아주 아주 작게(1x1로) SurfaceView를 만드는 방법 : 이건 그 activity를 빠져나가면 surfaceDestroy 땜에 녹화가 중단됩니다.

OpenCV의 NativeCamera : 이건 제 기종에선 안된다고 하네요(Galaxy S4 LTE-A)

혹시 방법 알고 계시면 답변 부탁드립니다.

PS. 혹시 Linux에서 바로 camera 데이터를 뽑아버리는 방법은 있을까요? 조금 무리수이기는 한데 그나마 문제가 덜할 것 같습니다. 혹시 그리고 이 경우에는 데이터 포맷은 어떻게 되는가요?
지방공돌이 (120 포인트) 님이 2013년 10월 10일 질문

2개의 답변

0 추천
제가 알기로는 불가능한것으로 알고있습니다만..
건방진프로그래머 (26,630 포인트) 님이 2013년 10월 11일 답변
0 추천
안드로이드 overlay view 를 만들어서 해보시면 될듯 합니다. 시중의 앱들 중에 overlay view 에 카메라를 뿌려주면서 핸드폰 화면을 보고 있어도 뒷면이 계속 보이게 하는 앱들이 있습니다. 단, 오버레이 뷰에서 Launcher Application 으로 전환시에는 당연하지만 카메라 자원에 대해 다시 접근하셔야 합니다.

다른 앱에서 카메라에 접근하려 하면 어떤 일이 벌어질지 저도 잘 모르겠습니다.
소년택이 (180 포인트) 님이 2013년 10월 11일 답변
...