From 3c2194940ca57b45b66a6344ad67e9c9f0b861bd Mon Sep 17 00:00:00 2001
From: Dana <Dana_Lee1016@126.com>
Date: 星期四, 29 一月 2026 13:28:18 +0800
Subject: [PATCH] 1.修改水印 usb

---
 app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraPushManager.java       |   11 ++++-
 app/src/main/java/com/safeluck/floatwindow/FloatingService.java                    |   52 ++++++++++++-------------
 app/src/main/java/com/safeluck/floatwindow/util/VideoFileUtils.java                |   19 ++++++---
 app/src/main/java/com/safeluck/floatwindow/manager/AndroidCameraRecordManager.java |    2 
 4 files changed, 48 insertions(+), 36 deletions(-)

diff --git a/app/src/main/java/com/safeluck/floatwindow/FloatingService.java b/app/src/main/java/com/safeluck/floatwindow/FloatingService.java
index c714a00..5e6da98 100644
--- a/app/src/main/java/com/safeluck/floatwindow/FloatingService.java
+++ b/app/src/main/java/com/safeluck/floatwindow/FloatingService.java
@@ -86,9 +86,7 @@
         NONE,
         USB_PUSH,
         USB_RECORD,
-        ANDROID_RECORD,
-        P2_USB_PUSH,
-        P2_USB_RECORD
+        ANDROID_RECORD
     }
     
     // AIDL Binder
@@ -107,9 +105,9 @@
         }
         
         @Override
-        public void stopMedia() throws RemoteException {
+        public void stopMedia(MediaArgu media) throws RemoteException {
             Timber.d("stopMedia called via AIDL");
-            FloatingService.this.stopMedia();
+            FloatingService.this.stopMedia(media);
         }
         
         @Override
@@ -190,14 +188,12 @@
             return;
         }
 
-        // usbCameraId == 2锛氳蛋 P2 璺ㄨ繘绋嬫湇鍔★紝鏀寔涓よ矾 USB 鍚屾椂宸ヤ綔
+        // usbCameraId == 2锛氳蛋 P2 璺ㄨ繘绋嬫湇鍔★紝鏀寔涓よ矾 USB 鍚屾椂宸ヤ綔锛堟湰 Service 涓嶅啀璺熻釜鍏剁姸鎬侊級
         if (media.isUsedOutCamera() && media.getUsbCameraId() == 2) {
-            stopCurrentManager();
             ensureP2Bound();
             if (p2Service != null) {
                 try {
                     p2Service.startMedia(media);
-                    currentManagerType = media.isPush() ? ManagerType.P2_USB_PUSH : ManagerType.P2_USB_RECORD;
                 } catch (RemoteException e) {
                     Timber.e(e, "startMedia forward to P2 failed");
                     notifyCallback(1, -3, "鍚姩P2鏈嶅姟澶辫触: " + e.getMessage());
@@ -205,7 +201,6 @@
             } else {
                 // 绛夊緟杩炴帴瀹屾垚鍚庢墽琛�
                 pendingP2StartMedia = media;
-                currentManagerType = media.isPush() ? ManagerType.P2_USB_PUSH : ManagerType.P2_USB_RECORD;
             }
             return;
         }
@@ -242,7 +237,7 @@
     }
     
     /**
-     * 鍋滄褰撳墠绠$悊鍣�
+     * 鍋滄褰撳墠鏈湴绠$悊鍣紙浠呯鐞嗘湰杩涚▼涓殑 USB(P1)/Android 褰曞儚鎴栨帹娴侊級
      */
     private void stopCurrentManager() {
         switch (currentManagerType) {
@@ -261,18 +256,6 @@
                     androidCameraRecordManager.stopRecord();
                 }
                 break;
-            case P2_USB_PUSH:
-            case P2_USB_RECORD:
-                if (p2Service != null) {
-                    try {
-                        p2Service.stopMedia();
-                    } catch (RemoteException e) {
-                        Timber.e(e, "stopMedia forward to P2 failed");
-                    }
-                } else {
-                    pendingP2StartMedia = null;
-                }
-                break;
             case NONE:
                 break;
         }
@@ -280,11 +263,26 @@
     }
     
     /**
-     * 鍋滄濯掍綋
+     * 鍋滄濯掍綋锛堥�氳繃 AIDL 璋冪敤锛屽甫 MediaArgu锛岀敤浜庡尯鍒� P1/P2锛�
      */
-    private void stopMedia() {
-        Timber.d("stopMedia called");
-        stopCurrentManager();
+    private void stopMedia(MediaArgu media) {
+        Timber.d("stopMedia called, media=%s", media);
+        if (media != null && media.isUsedOutCamera() && media.getUsbCameraId() == 2) {
+            // P2 USB 鎽勫儚澶寸敱 P2UsbCameraVideoService 绠$悊
+            ensureP2Bound();
+            if (p2Service != null) {
+                try {
+                    p2Service.stopMedia(media);
+                } catch (RemoteException e) {
+                    Timber.e(e, "stopMedia forward to P2 failed");
+                }
+            } else {
+                pendingP2StartMedia = null;
+            }
+        } else {
+            // 鍏朵粬鎯呭喌锛堝寘鎷� P1 USB 涓� Android 鐩告満锛夌敱鏈� Service 鑷繁绠$悊
+            stopCurrentManager();
+        }
     }
     
     @Override
@@ -296,7 +294,7 @@
     @Override
     public void onDestroy() {
         super.onDestroy();
-        stopMedia();
+        stopCurrentManager();
         mCallbacks.kill();
         if (p2Bound) {
             try {
diff --git a/app/src/main/java/com/safeluck/floatwindow/manager/AndroidCameraRecordManager.java b/app/src/main/java/com/safeluck/floatwindow/manager/AndroidCameraRecordManager.java
index a625b59..ecc72ef 100644
--- a/app/src/main/java/com/safeluck/floatwindow/manager/AndroidCameraRecordManager.java
+++ b/app/src/main/java/com/safeluck/floatwindow/manager/AndroidCameraRecordManager.java
@@ -179,7 +179,7 @@
         
         try {
             // 鍒涘缓鏂扮殑瑙嗛鏂囦欢
-            currentVideoFile = VideoFileUtils.getVideoFile(context, mediaArgu.getTfCardFlag());
+            currentVideoFile = VideoFileUtils.getVideoFile(context, mediaArgu.getTfCardFlag(),0);
             if (currentVideoFile == null) {
                 Timber.e("Failed to create video file");
                 return;
diff --git a/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraPushManager.java b/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraPushManager.java
index 7a82c9f..076ada8 100644
--- a/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraPushManager.java
+++ b/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraPushManager.java
@@ -283,7 +283,11 @@
     int fontSize= 24;
     private ScheduledExecutorService scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();
     private void setWaterMask() {
-
+        if (mediaArgu.getUsbCameraId()==2){
+            GlobalData.getInstance().getCameraTag="_P2";
+        }else{
+            GlobalData.getInstance().getCameraTag="_P1";
+        }
         // 闃叉閲嶅 schedule锛坰tartPush 鍙兘琚娆¤皟鐢級
         if (watermarkFuture != null && !watermarkFuture.isCancelled()) {
             return;
@@ -329,7 +333,10 @@
                     double speed = GlobalData.getInstance().parseWaterMaskInfo("speed", 0.0, GlobalData.ShareType.DOUBLE);
 
 
-                    String czh = GlobalData.getInstance().parseWaterMaskInfo("car_license", "鏃�", GlobalData.ShareType.STRING) + GlobalData.getInstance().getCameraTag;
+                    String czh = GlobalData.getInstance().parseWaterMaskInfo("car_license", "鏃�", GlobalData.ShareType.STRING) +
+
+                            GlobalData.getInstance().getCameraTag;
+
                     baseY = fontSize*11/10+baseY;
                     watermarkParam = new WatermarkParam(10,resolutionArr[1]-baseY,czh +"    "+String.format("閫熷害锛�%.1f",speed));
                     watermarkParamList.add(watermarkParam);
diff --git a/app/src/main/java/com/safeluck/floatwindow/util/VideoFileUtils.java b/app/src/main/java/com/safeluck/floatwindow/util/VideoFileUtils.java
index d9b0128..9738b2e 100644
--- a/app/src/main/java/com/safeluck/floatwindow/util/VideoFileUtils.java
+++ b/app/src/main/java/com/safeluck/floatwindow/util/VideoFileUtils.java
@@ -67,9 +67,16 @@
      * 鐢熸垚瑙嗛鏂囦欢鍚嶏紙鏃跺垎绉�.mp4锛�
      * @return 鏂囦欢鍚嶏紝渚嬪锛�143025.mp4
      */
-    public static String generateVideoFileName() {
+    public static String generateVideoFileName(int usbCamId) {
         SimpleDateFormat timeFormat = new SimpleDateFormat("HHmmss", Locale.getDefault());
-        return timeFormat.format(new Date()) + ".mp4";
+        if (usbCamId==2){
+            return timeFormat.format(new Date()) + "_P2.mp4";
+        }else if (usbCamId==1){
+            return timeFormat.format(new Date()) + "_P1.mp4";
+        }else{
+            return timeFormat.format(new Date()) + ".mp4";
+        }
+
     }
     
     /**
@@ -78,24 +85,24 @@
      * @param tfCardFlag 0-鍐呴儴瀛樺偍锛�1-澶栭儴瀛樺偍
      * @return 瀹屾暣鐨勬枃浠惰矾寰�
      */
-    public static File getVideoFile(Context context, int tfCardFlag) {
+    public static File getVideoFile(Context context, int tfCardFlag,int usbCameraId) {
         File dateDir = getVideoDirectory(context, tfCardFlag);
         if (dateDir == null) {
             return null;
         }
         
-        String fileName = generateVideoFileName();
+        String fileName = generateVideoFileName(usbCameraId);
         return new File(dateDir, fileName);
     }
     
     /**
-     * 鑾峰彇瑙嗛鏂囦欢璺緞瀛楃涓�
+     * 鑾峰彇瑙嗛鏂囦欢璺緞瀛楃涓� 鍙兘鑾峰彇鍒板唴閮ㄧ浉鏈烘枃浠剁殑璺緞
      * @param context 涓婁笅鏂�
      * @param tfCardFlag 0-鍐呴儴瀛樺偍锛�1-澶栭儴瀛樺偍
      * @return 鏂囦欢璺緞瀛楃涓�
      */
     public static String getVideoFilePath(Context context, int tfCardFlag) {
-        File file = getVideoFile(context, tfCardFlag);
+        File file = getVideoFile(context, tfCardFlag,0);
         return file != null ? file.getAbsolutePath() : null;
     }
 }

--
Gitblit v1.8.0