1. 카메라 변경
public static Camera open (int cameraId) 에 들어가는 int cameraId를 통해 카메라를 선택할 수 있습니다.
cameraId 는 다음과 같이 설명 되어 있습니다.
int: the hardware camera to access, between 0 and getNumberOfCameras()-1.
즉 아래 코드에서 cameraCount가 2일 경우 Camera.open(1); 같은걸 주면 다른 카메라를 사용할 수 있습니다.
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
int cameraCount = Camera.getNumberOfCameras();
2. 안드로이드에서 녹화하면 rotate 정보가 container에 추가로 들어갈 뿐, 영상 자체가 회전되서 녹화 되는 것은 아니라서 변경이 불가능한 사항입니다.
정 회전된 영상을 녹화 하려면
카메라데이터를 구해(onPreviewCallback) -> 회전-> H264로 인코딩-> 파일 생성의 과정을 별도로 해 주어야하는데,
구현도 어렵고, 연산속도도 맞춰주기가 쉽지 않으니. 무리해서 개발하실 필요가 있는지는 의문이며,
회전 정보를 주는 법은
A. 하나의 모드로 고정.
http://blog.naver.com/PostView.nhn?blogId=visualc98&logNo=68166910
B. setDisplayOrientation 사용
http://developer.android.com/reference/android/hardware/Camera.html#setDisplayOrientation(int)
(단, 여기서 view 를 생성할 때 activity 객체를 받아와야 합니다)
int rotation = activity.getWindowManager().getDefaultDisplay().getRotation();
int degrees = 0;
switch (rotation) {
case Surface.ROTATION_0: degrees = 0; break;
case Surface.ROTATION_90: degrees = 90; break;
case Surface.ROTATION_180: degrees = 180; break;
case Surface.ROTATION_270: degrees = 270; break;
}
int result = (90 - degrees + 360) % 360;
camera.setDisplayOrientation(result);