Camera 사용하기
Android 2015. 5. 11. 17:54http://developer.android.com/guide/topics/media/camera.html
@ Camera 사용하기 전에 권한 설정
카메라 장치 사용을 위한 퍼미션
<uses-permission android:name="android.permission.CAMERA" />
카메라 기능 사용을 설정
<uses-feature android:name="android.hardware.camera" />
기능이 필요 없을 경우엔 속성을 false로 지정한다
<uses-feature android:name="android.hardware.camera" android:required="false" />
SD Card 등 외부저장소에 저장하기 위해
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
오디오 녹음 허용
<uses-permission android:name="android.permission.RECORD_AUDIO" />
이미지에 GPS 정보를 태그 하기 위해 허용
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
기존 카메라 앱을 사용하기 위한 단계
1. 이미지나 비디오 캡쳐를 위해 Intent를 생성한다.
MediaStore.ACTION_IMAGE_CAPTURE - image
MediaStore.ACTION_VIDEO_CAPTURE - video
2. startActivityForResult()를 사용해서 camera intent를 시작.
3. onActivityResult() 메소드로 콜백과 데이터를 받아서 처리.
Camera Class
http://developer.android.com/reference/android/hardware/Camera.html
발번역하기.
Camera class를 이용해 사진촬영을 위해서 다음 단계를 따릅니다.
1. open(int) 를 통해 Camera 인스턴스를 얻어온다.
2. getParameters()를 통해 (default) 세팅을 합니다.
3. 필요하다면 Camera.Parameters의 리턴객체를 수정하고, setParameters(Camera.Parameters) 메서드를 호출합니다.
4. 원한다면 setDisplayOrientation(int) 를 호출합니다.
5. 중요: setPreviewDisplay(SurfaceHolder)에 완전히 초기화된 SurfaceHoder를 전달합니다. surface가 없다면, 카메라는 preview를 시작할 수 없습니다.
6. preview surface의 업데이트를 시작하기 위해 startPreview()를 호출하세요. 사진을 촬영하기 전에 반드시 Preview가 시작되어야 합니다.Camera.PictureCallback) to capture a photo. Wait for the callbacks to provide the actual image data.
7. 당신이 원할 때 사진을 캡쳐하기 위해 takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback)를 호출하세요. 실제 이미지 데이터를 제공받기 위해 콜백을 기다리세요.
8. 사진을 촬영한 후에 preview 화면은 멈출 것 입니다. 사진을 더 찍기 위해서는 우선 startPreview() 다시 호출하세요.
9. preview surface를 멈추기 위해서 stopPreview() 를 호출하세요.
10. 중요: 다른 어플리케이션의 사용을 위해서 release()를 호출하여 camera를 해제해야합니다. 어플리케이션은 onPause()에서 camera를 즉시 해제할 수 있습니다.(그리고 onResume()에서 다시 엽니다.)