使用MediaRecorder + SurfaceView录制视频,切换为前置摄像头:
try {
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
int numberOfCameras = Camera.getNumberOfCameras();
for (int i = 0; i < numberOfCameras; i++) {
Camera.getCameraInfo(i, cameraInfo);
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
mCamera = Camera.open(i);
}
}
} catch (Exception e) {
e.printStackTrace();
}
部分手机开始录像会闪退,原因是前置摄像头不能设置聚焦模式:
Camera.Parameters params = mCamera.getParameters();
params.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
取消这一设置就好了
又遇到一个问题,拍出来的视频倒立或者转90°,解决如下:
//设置选择角度,顺时针方向,因为默认是逆向90度的,这样图像就是正常显示了,这里设置的是观看保
//存后的视频的角度
//前置摄像头的话,这里要再加上180°
mediaRecorder.setOrientationHint(90 + 180);