[Android/camera] Android에서 camera 구동시 발생 문제


광고 한번만 클릭 부탁드립니다^^


포스팅을 보시는 분들을 위해 노력 하는 블로거를 위하여! 부탁드립니다. 재미 삼아 포스팅을 정리하지만, 광고를 달아보았습니다. 얼마나 열심히 할 수 있을지...의문이지만요^^ 

Subject Android에서 camera 구동시 발생 문제

최종수정일 : 2011.07.25

주절주절~^^;;

by 퓨림노



This class is not thread-safe, and is meant for use from one event thread. Most long-running operations (preview, focus, photo capture, etc) happen asynchronously and invoke callbacks as necessary. Callbacks will be invoked on the event thread open(int) was called from. This class's methods must never be called from multiple threads at once. 

Reference

[1] Android Developer ( http://developer.android.com/reference/android/hardware/Camera.html  )

Android 에서   카메라를 구동시, long-running operations( preview, focus, photo caputre, etc) 같은 작업을 할때, 비동기적으로 callbacks 를 해결해야 할 것 같다. 

해결 방법은 찾아보고 - 업데이트를 하도록 하자!

그리고 다음 포스팅 을 읽어보도록 하자.

Reference
[2] 안드로이드 길라잡이 ( http://android007.tistory.com/entry/Processe-and-Lifecycle )
- Activity의 process-and-lifecycle에 대해서 설명을 하고 있다. 카메라를 동작시에 왜 사진을 촬영할 때, 가끔 뻗어버리는 경우가 생기는지 알 수 가 있다.  결론을 말하자면, processing 을 하고 있는 카메라, Thread로 돌리기 때문에 service에 묻혀버려 실행이 되지 않는 다는 뜻이다.  
 



아...찾다보니 하나 더 있다. 정리하도록 하자. 

Reference
[3] Android Developer ( http://developer.android.com/reference/android/hardware/Camera.html )

 

public final void takePicture (Camera.ShutterCallback shutter, Camera.PictureCallback raw, Camera.PictureCallback postview,Camera.PictureCallback jpeg)

 

Triggers an asynchronous image capture. The camera service will initiate a series of callbacks to the application as the image capture progresses. The shutter callback occurs after the image is captured. This can be used to trigger a sound to let the user know that image has been captured. The raw callback occurs when the raw image data is available (NOTE: the data will be null if there is no raw image callback buffer available or the raw image callback buffer is not large enough to hold the raw image). The postview callback occurs when a scaled, fully processed postview image is available (NOTE: not all hardware supports this). The jpeg callback occurs when the compressed image is available. If the application does not need a particular callback, a null can be passed instead of a callback method.

This method is only valid when preview is active (after startPreview()). Preview will be stopped after the image is taken; callers must callstartPreview() again if they want to re-start preview or take more pictures.

After calling this method, you must not call startPreview() or take another picture until the JPEG callback has returned.

- 기타다른 예제에서 startPreview() 를 해주는 소스가 많다.
물론 써보았지만, 화면이 멈춰있다. 어떻게 해결할까???

카메라를 reconnect() 를 하면 되지 않을까? (포스팅 작성중 해보지는 않았다. 직접 해보자.) 

댓글

Designed by JB FACTORY