Я использую приведенный ниже код для установки фронтальной камеры на устройство
private Camera getFrontCamera() {
int cameraCount = 0;
Camera camera = null;
Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
cameraCount = Camera.getNumberOfCameras();
for (int camIdx = 0; camIdx < cameraCount; camIdx++) {
Camera.getCameraInfo(camIdx, cameraInfo);
if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
try {
camera = Camera.open(camIdx);
camera.setDisplayOrientation(90);
} catch (RuntimeException e) {
e.printStackTrace();
}
}
}
return camera;
}
Все работает хорошо, но при предварительном просмотре камеры в SurfaceView
на разных телефонах получается различное вращение.
Когда я запускаю код на Samsung s7
с setDisplayOrientation(90)
, предварительный просмотр камеры такой, каким он должен быть, а на Xiaomi
предварительный просмотр телефона поворачивается на 180 градусов.Когда я запускаю код на Xiaomi mi5
с setDisplayOrientation(270)
, этот Xiaomi
работает хорошо, но Samsung
поворачивается на 180 градусов.
Может кто-нибудь сказать мне, как заставить это работать на всех устройствах?
Спасибо