Files
MAG160C/analysis/jadx_magcx/cn/com/magnity/magnitycx/sdk/VisibleCamera.java
T

104 lines
3.4 KiB
Java

package cn.com.magnity.magnitycx.sdk;
import android.hardware.Camera;
import android.view.SurfaceHolder;
import cn.com.magnity.magnitycx.MagApplication;
import java.util.List;
/* loaded from: classes.dex */
public class VisibleCamera {
private static Camera camera_;
private static boolean isPreview_;
public static void initCamera(int id, SurfaceHolder surfaceHolder, int size) {
if (Camera.getNumberOfCameras() >= 1) {
if (!isPreview_) {
camera_ = Camera.open(id);
setPreviewOrientation(id);
}
if (camera_ != null && !isPreview_) {
try {
Camera.Parameters parameters = camera_.getParameters();
setPreviewSize(parameters, size);
parameters.setPictureFormat(256);
parameters.set("jpeg-quality", 85);
parameters.setFlashMode("auto");
parameters.setFocusMode("continuous-picture");
camera_.setParameters(parameters);
camera_.setPreviewDisplay(surfaceHolder);
camera_.startPreview();
camera_.cancelAutoFocus();
} catch (Exception e) {
}
isPreview_ = true;
}
}
}
public static void deinitCamera() {
if (camera_ != null) {
if (isPreview_) {
camera_.stopPreview();
isPreview_ = false;
}
camera_.release();
camera_ = null;
}
}
private static void setPreviewSize(Camera.Parameters parameters, int size) {
List<Camera.Size> list = parameters.getSupportedPreviewSizes();
int num = list.size();
for (int i = 0; i < num; i++) {
Camera.Size s = list.get(i);
if ((s.width <= s.height || s.width * 3 == s.height * 4) && ((s.width >= s.height || s.width * 4 == s.height * 3) && Math.min(s.width, s.height) >= size)) {
parameters.setPreviewSize(s.width, s.height);
return;
}
}
}
private static void setPreviewOrientation(int id) {
int result;
if (camera_ != null) {
Camera.CameraInfo info = new Camera.CameraInfo();
Camera.getCameraInfo(id, info);
int rotation = MagApplication.windowManager.getDefaultDisplay().getRotation();
int degrees = 0;
switch (rotation) {
case 0:
degrees = 0;
break;
case 1:
degrees = 90;
break;
case 2:
degrees = 180;
break;
case 3:
degrees = 270;
break;
}
if (info.facing == 1) {
int result2 = (info.orientation + degrees) % 360;
result = (360 - result2) % 360;
} else {
result = ((info.orientation - degrees) + 360) % 360;
}
camera_.setDisplayOrientation(result);
}
}
public static boolean isCameraPermission() {
if (camera_ != null) {
return true;
}
try {
Camera.open().release();
return true;
} catch (Exception e) {
return false;
}
}
}