From 32850163fa16c3697904cc01c90e8146cdd6c909 Mon Sep 17 00:00:00 2001 From: MTing Date: Wed, 24 Sep 2025 18:09:03 +0800 Subject: [PATCH] fix camera --- .../com/ouxuan/oxface/OXFaceOnlineActivity.java | 22 ++++++++++++++++++++++ .../face/main/finance/manager/FaceSDKManager.java | 6 ++++-- 2 files changed, 26 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java b/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java index 07692d7..d46ce52 100644 --- a/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java +++ b/app/src/main/java/com/ouxuan/oxface/OXFaceOnlineActivity.java @@ -232,6 +232,9 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi private static boolean isOrderSelectionActivityShowing = false; // 订单选择页面是否正在显示 private static boolean isOrderVerificationResultActivityShowing = false; // 订单核销结果页面是否正在显示 public static boolean isVerificationCodeActivityShowing = false; // 验证码页面是否正在显示 + + // 设备类型相关变量 + private int deviceType = -1; // 设备类型:5表示第6批,6表示第7批,7表示第8批等 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -247,6 +250,10 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi // 初始化LoginDataManager loginDataManager = com.ouxuan.oxface.data.LoginDataManager.getInstance(this); + // 获取设备类型 + deviceType = DeviceSelectDataManager.getInstance(this).getDeviceType(); + Log.d(TAG, "OXFaceOnlineActivity初始化设备类型: " + deviceType); + // 初始化网络请求管理器 initNetworkManagers(); @@ -1404,6 +1411,21 @@ public class OXFaceOnlineActivity extends BaseActivity implements View.OnClickLi // 检测图片的坐标和显示的坐标不一样,需要转换。 FaceOnDrawTexturViewUtil.mapFromOriginalRect(rectF, mAutoCameraPreviewView, model.getBdFaceImageInstance()); + + // 根据设备类型进行人脸框坐标适配 + if (deviceType == 6) { + // 第7批设备需要180度旋转适配 + float screenWidth = mAutoCameraPreviewView.getPreviewWidth(); + float screenHeight = mAutoCameraPreviewView.getPreviewHeight(); + float tempLeft = rectF.left; + float tempTop = rectF.top; + rectF.left = screenWidth - rectF.right; + rectF.right = screenWidth - tempLeft; + rectF.top = screenHeight - rectF.bottom; + rectF.bottom = screenHeight - tempTop; + Log.d(TAG, "第7批设备人脸框坐标已进行180度旋转适配"); + } + // 人脸框颜色 FaceOnDrawTexturViewUtil.drawFaceColor(paint, paintBg, liveStatus, model); // 绘制人脸框 diff --git a/financelibrary/src/main/java/com/baidu/idl/face/main/finance/manager/FaceSDKManager.java b/financelibrary/src/main/java/com/baidu/idl/face/main/finance/manager/FaceSDKManager.java index 89c423e..d3f1597 100644 --- a/financelibrary/src/main/java/com/baidu/idl/face/main/finance/manager/FaceSDKManager.java +++ b/financelibrary/src/main/java/com/baidu/idl/face/main/finance/manager/FaceSDKManager.java @@ -855,9 +855,11 @@ public class FaceSDKManager { try { if(deviceType == 6){ Log.e("FaceSDKManager", "switchCamera--第7批"); - SingleBaseConfig.getBaseConfig().setVideoDirection(180); + // SingleBaseConfig.getBaseConfig().setVideoDirection(90); SingleBaseConfig.getBaseConfig().setRgbVideoDirection(90); - SingleBaseConfig.getBaseConfig().setMirrorDetectRGB(0); + SingleBaseConfig.getBaseConfig().setDetectDirection(270); + SingleBaseConfig.getBaseConfig().setRgbDetectDirection(270); +// SingleBaseConfig.getBaseConfig().setMirrorDetectRGB(0); }else if(deviceType == 5){ Log.e("FaceSDKManager", "switchCamera--第6批"); SingleBaseConfig.getBaseConfig().setVideoDirection(90);