From 430512c7927776edcee161ee600f1ee5bf34e566 Mon Sep 17 00:00:00 2001
From: Dana <Dana_Lee1016@126.com>
Date: 星期五, 06 二月 2026 14:43:54 +0800
Subject: [PATCH] 1.notifyCallback synchronized

---
 app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraRecordManager.java |   62 ++++++++++++++++++------------
 1 files changed, 37 insertions(+), 25 deletions(-)

diff --git a/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraRecordManager.java b/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraRecordManager.java
index 9d6bd0c..b64cfd1 100644
--- a/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraRecordManager.java
+++ b/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraRecordManager.java
@@ -122,7 +122,7 @@
         if (media.getM_screen() != null) {
             resolutionArr[0] = media.getM_screen().getWidth();
             resolutionArr[1] = media.getM_screen().getHeight();
-            Timber.d("璁剧疆鍒嗚鲸鐜�: %dx%d", resolutionArr[0], resolutionArr[1]);
+            Timber.d("%s 璁剧疆鍒嗚鲸鐜�: %dx%d", getCameraTag(), resolutionArr[0], resolutionArr[1]);
         }
         
         try {
@@ -134,14 +134,14 @@
             }
             setWaterMask();
             cameraExists = true;
-            Timber.d("USB鎽勫儚澶存墦寮�鎴愬姛");
+            Timber.d("%s USB鎽勫儚澶存墦寮�鎴愬姛", getCameraTag());
             
             // 鍚姩褰曞儚绾跨▼
             startRecordThread();
             
             notifyCallback(0, 0, "褰曞儚宸插惎鍔�");
         } catch (Exception e) {
-            Timber.e(e, "Failed to start record");
+            Timber.e(e, "%s Failed to start record", getCameraTag());
             notifyCallback(0, -3, "鍚姩褰曞儚澶辫触: " + e.getMessage());
         }
     }
@@ -262,7 +262,7 @@
      * 鍋滄褰曞儚
      */
     public void stopRecord() {
-        Timber.d("stopRecord called");
+        Timber.d("%s stopRecord called", getCameraTag());
 
         stopWaterMaskSchedule();
         
@@ -321,7 +321,7 @@
             int ret = -1;
             for (int i = 0; i < 3; i++) {
                 ret = usbCamera.prepareCamera(cameraIds, cameraName, resolutionArr, ay_encrypt);
-                Timber.d("USB褰曞儚鎽勫儚澶寸%d娆℃墦寮�缁撴灉: %d, 鍒嗚鲸鐜�: %dx%d", i + 1, ret, resolutionArr[0], resolutionArr[1]);
+                Timber.d("%s USB褰曞儚鎽勫儚澶寸%d娆℃墦寮�缁撴灉: %d, 鍒嗚鲸鐜�: %dx%d", getCameraTag(), i + 1, ret, resolutionArr[0], resolutionArr[1]);
                 if (ret == 0) {
                     break;
                 }
@@ -332,7 +332,7 @@
             // 鎴愬姛鏍囧噯锛歱repareCamera 杩斿洖 0
             return ret == 0;
         } catch (Exception e) {
-            Timber.e(e, "鎵撳紑USB鎽勫儚澶村紓甯�");
+            Timber.e(e, "%s 鎵撳紑USB鎽勫儚澶村紓甯�", getCameraTag());
             return false;
         }
     }
@@ -384,22 +384,22 @@
                 );
                 
                 if (audioRecord.getState() != AudioRecord.STATE_INITIALIZED) {
-                    Timber.e("AudioRecord鍒濆鍖栧け璐�");
+                    Timber.e("%s AudioRecord鍒濆鍖栧け璐�", getCameraTag());
                     return false;
                 }
-                Timber.d("闊抽缂栫爜鍣ㄥ拰AudioRecord鍒濆鍖栨垚鍔燂紙P1妯″紡锛�");
+                Timber.d("%s 闊抽缂栫爜鍣ㄥ拰AudioRecord鍒濆鍖栨垚鍔燂紙P1妯″紡锛�", getCameraTag());
             } else {
                 // P2 妯″紡锛氫笉鍒濆鍖栭煶棰戠浉鍏宠祫婧�
                 audioEncoder = null;
                 audioRecord = null;
                 audioTrackIndex = -1;
-                Timber.d("P2妯″紡锛氳烦杩囬煶棰戝垵濮嬪寲锛屼粎褰曞埗瑙嗛");
+                Timber.d("%s P2妯″紡锛氳烦杩囬煶棰戝垵濮嬪寲锛屼粎褰曞埗瑙嗛", getCameraTag());
             }
             
             // 鍒涘缓鏂扮殑瑙嗛鏂囦欢
             currentVideoFile = VideoFileUtils.getVideoFile(context, mediaArgu.getTfCardFlag(),mediaArgu.getUsbCameraId());
             if (currentVideoFile == null) {
-                Timber.e("Failed to create video file");
+                Timber.e("%s Failed to create video file", getCameraTag());
                 return false;
             }
             
@@ -411,11 +411,11 @@
             muxerStarted = false;
             currentFileStartTime = System.currentTimeMillis();
             
-            Timber.d("缂栫爜鍣ㄥ拰Muxer鍒濆鍖栨垚鍔燂紝鏂囦欢: %s, 闊抽: %s", 
+            Timber.d("%s 缂栫爜鍣ㄥ拰Muxer鍒濆鍖栨垚鍔燂紝鏂囦欢: %s, 闊抽: %s", getCameraTag(), 
                     currentVideoFile.getAbsolutePath(), enableAudio ? "鍚敤" : "绂佺敤");
             return true;
         } catch (Exception e) {
-            Timber.e(e, "鍒濆鍖栫紪鐮佸櫒鍜孧uxer澶辫触");
+            Timber.e(e, "%s 鍒濆鍖栫紪鐮佸櫒鍜孧uxer澶辫触", getCameraTag());
             return false;
         }
     }
@@ -487,7 +487,7 @@
             isRunning = true;
             recordThread = new RecordThread();
             recordThread.start();
-            Timber.d("Record thread started");
+            Timber.d("%s Record thread started", getCameraTag());
         }
     }
     
@@ -514,7 +514,7 @@
         @Override
         public void run() {
             super.run();
-            Timber.d("RecordThread started");
+            Timber.d("%s RecordThread started", getCameraTag());
             
             try {
                 int width = resolutionArr[0];
@@ -535,7 +535,7 @@
                 if (!isP2Mode && audioRecord != null) {
                     // 鍚姩闊抽褰曞埗
                     audioRecord.startRecording();
-                    Timber.d("闊抽褰曞埗宸插惎鍔紙P1妯″紡锛�");
+                    Timber.d("%s 闊抽褰曞埗宸插惎鍔紙P1妯″紡锛�", getCameraTag());
                     
                     // 娉ㄦ剰锛氫笉瑕佸湪杩欓噷涓诲姩妫�鏌ラ煶棰戠紪鐮佸櫒杈撳嚭鏍煎紡
                     // 鍥犱负 MediaCodec 鐨� getOutputFormat() 鍦ㄧ紪鐮佸櫒鍚姩鍚庡彲鑳借繑鍥� null
@@ -545,10 +545,10 @@
                     audioThread = new AudioThread();
                     audioThread.start();
                 } else {
-                    Timber.d("P2妯″紡锛氳烦杩囬煶棰戝綍鍒跺拰缂栫爜绾跨▼");
+                    Timber.d("%s P2妯″紡锛氳烦杩囬煶棰戝綍鍒跺拰缂栫爜绾跨▼", getCameraTag());
                 }
                 
-                Timber.d("寮�濮嬪綍鍍忥紝鍒嗚鲸鐜�: %dx%d", width, height);
+                Timber.d("%s 寮�濮嬪綍鍍忥紝鍒嗚鲸鐜�: %dx%d", getCameraTag(), width, height);
                 
                 // 璁板綍寮�濮嬫椂闂达紙绾崇锛岀敤浜庣簿纭椂闂存埑锛�
                 recordingStartTimeNs = System.nanoTime();
@@ -613,7 +613,7 @@
                     // 澶勭悊鎽勫儚澶存暟鎹�
                     int processResult = usbCamera.processCamera();
                     if (processResult == -1) {
-                        Timber.w("processCamera杩斿洖-1锛屾憚鍍忓ご鍙兘鏂紑");
+                        Timber.w("%s processCamera杩斿洖-1锛屾憚鍍忓ご鍙兘鏂紑", getCameraTag());
                         cameraExists = false;
                         notifyCallback(0, -1, "USB鎽勫儚澶存柇寮�");
                         break;
@@ -635,7 +635,7 @@
                 }
                 
             } catch (Exception e) {
-                Timber.e(e, "Error in record thread");
+                Timber.e(e, "%s Error in record thread,%s", getCameraTag(),e.getMessage());
                 cameraExists = false;
                 notifyCallback(0, -1, "褰曞儚绾跨▼寮傚父: " + e.getMessage());
             } finally {
@@ -645,7 +645,7 @@
                     try {
                         audioThread.join(1000);
                     } catch (InterruptedException e) {
-                        Timber.e(e, "Error stopping audio thread");
+                        Timber.e(e, "%s Error stopping audio thread,%s", getCameraTag(),e.getMessage());
                     }
                     audioThread = null;
                 }
@@ -658,7 +658,7 @@
                     completedVideoFile = null;
                 }
 
-                Timber.d("RecordThread ended");
+                Timber.d("%s RecordThread ended", getCameraTag());
             }
         }
         
@@ -901,11 +901,11 @@
         @Override
         public void run() {
             super.run();
-            Timber.d("AudioThread started");
+            Timber.d("%s AudioThread started", getCameraTag());
             
             // 濡傛灉闊抽璧勬簮鏈垵濮嬪寲锛圥2妯″紡锛夛紝鐩存帴閫�鍑�
             if (audioRecord == null || audioEncoder == null) {
-                Timber.d("AudioThread: 闊抽璧勬簮鏈垵濮嬪寲锛岄��鍑猴紙鍙兘鏄疨2妯″紡锛�");
+                Timber.d("%s AudioThread: 闊抽璧勬簮鏈垵濮嬪寲锛岄��鍑猴紙鍙兘鏄疨2妯″紡锛�", getCameraTag());
                 return;
             }
             
@@ -927,9 +927,9 @@
                 }
                 
             } catch (Exception e) {
-                Timber.e(e, "Error in audio thread");
+                Timber.e(e, "%s Error in audio thread", getCameraTag());
             } finally {
-                Timber.d("AudioThread ended");
+                Timber.d("%s AudioThread ended", getCameraTag());
             }
         }
         
@@ -1003,6 +1003,18 @@
     }
     
     /**
+     * 鑾峰彇鎽勫儚澶碔D鏍囩锛岀敤浜庢棩蹇�
+     * @return "[P1]" 鎴� "[P2]"
+     */
+    private String getCameraTag() {
+        if (mediaArgu != null) {
+            int usbCameraId = mediaArgu.getUsbCameraId();
+            return usbCameraId == 2 ? "[P2]" : "[P1]";
+        }
+        return "[P1]"; // 榛樿 P1
+    }
+    
+    /**
      * 閫氱煡鍥炶皟
      */
     private void notifyCallback(int type, int errCode, String message) {

--
Gitblit v1.8.0