修改攝像頭旋轉方向有很多方法,如驅動層,hal層,應用等修改,這裡說一個修改API的方法,如果攝像頭角度不正确,當每個應用調用API時,需要另外設定旋轉。
修改API後,應用不需要更改或根據需要再做調整。
根據Camera的API,Camera的類位置:
frameworks/base/core/java/android/hardware/Camera.java
Camera有個open方法, 當需要更改攝像頭方向時,可以修改open方法。
open方法有兩個,
添加一個方法:
根據cameraId,傳回已經設定好旋轉參數的Camera對象。有兩個攝像頭時,cameraId=0是後攝像頭,cameraId=1是前攝像頭。
private static Camera rotateCamera(int cameraId) {
Camera camera = new Camera(cameraId);
Parameters parameters = camera.getParameters();
CameraInfo cameraInfo = new CameraInfo();
getCameraInfo(cameraId, cameraInfo);
if (cameraInfo.facing == CameraInfo.CAMERA_FACING_BACK) {
camera.setDisplayOrientation(270);
parameters.setRotation(270);
} else if (cameraInfo.facing == CameraInfo.CAMERA_FACING_FRONT) {
camera.setDisplayOrientation(90);
parameters.setRotation(90);
}
camera.setParameters(parameters);
return camera;
}
然後在open方法中調用上述方法