From f8e07136a73a1723c2c9cdd13b8928c0e7cdf5aa Mon Sep 17 00:00:00 2001
From: Dana <Dana_Lee1016@126.com>
Date: 星期四, 29 一月 2026 13:42:36 +0800
Subject: [PATCH] 1.usb录像 Cameraid

---
 app/src/main/java/com/safeluck/floatwindow/P2UsbCameraVideoService.java        |   21 ++++++++++++++++++++-
 app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraRecordManager.java |    6 +++---
 2 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/app/src/main/java/com/safeluck/floatwindow/P2UsbCameraVideoService.java b/app/src/main/java/com/safeluck/floatwindow/P2UsbCameraVideoService.java
index fbd7398..09e59ab 100644
--- a/app/src/main/java/com/safeluck/floatwindow/P2UsbCameraVideoService.java
+++ b/app/src/main/java/com/safeluck/floatwindow/P2UsbCameraVideoService.java
@@ -3,7 +3,9 @@
 import android.app.Service;
 import android.content.Context;
 import android.content.Intent;
+import android.os.Handler;
 import android.os.IBinder;
+import android.os.Looper;
 import android.os.RemoteCallbackList;
 import android.os.RemoteException;
 
@@ -25,6 +27,9 @@
     private UsbCameraRecordManager usbCameraRecordManager;
 
     private ManagerType currentManagerType = ManagerType.NONE;
+    
+    // 涓荤嚎绋� Handler锛岀敤浜庣‘淇� AlivcLivePusher 鍒濆鍖栧湪涓荤嚎绋嬫墽琛�
+    private final Handler mainHandler = new Handler(Looper.getMainLooper());
 
     private enum ManagerType {
         NONE,
@@ -114,6 +119,15 @@
             return;
         }
 
+        // 纭繚鍦ㄤ富绾跨▼鎵ц锛屽洜涓� AlivcLivePusher 鍒濆鍖栭渶瑕� Handler锛堝繀椤诲湪鏈� Looper 鐨勭嚎绋嬶級
+        if (Looper.myLooper() == Looper.getMainLooper()) {
+            startMediaInternal(media);
+        } else {
+            mainHandler.post(() -> startMediaInternal(media));
+        }
+    }
+    
+    private void startMediaInternal(MediaArgu media) {
         // 鍏堝仠姝㈠綋鍓�
         stopCurrentManager();
 
@@ -127,7 +141,12 @@
     }
 
     private void stopMedia(MediaArgu media) {
-        stopCurrentManager();
+        // 纭繚鍦ㄤ富绾跨▼鎵ц
+        if (Looper.myLooper() == Looper.getMainLooper()) {
+            stopCurrentManager();
+        } else {
+            mainHandler.post(this::stopCurrentManager);
+        }
     }
 
     private void stopCurrentManager() {
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 7ccabbd..a99dfa2 100644
--- a/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraRecordManager.java
+++ b/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraRecordManager.java
@@ -297,11 +297,11 @@
             int usbId = (mediaArgu != null) ? mediaArgu.getUsbCameraId() : 0;
             int[] cameraIds;
             if (usbId == 2) {
-                cameraIds = new int[]{2};
+                cameraIds = new int[]{2,3};
             } else if (usbId == 1) {
-                cameraIds = new int[]{0};
+                cameraIds = new int[]{1,2};
             } else {
-                cameraIds = new int[]{0, 2};
+                cameraIds = new int[]{0, 1};
             }
             String cameraName = null; // 涓嶆寚瀹氱壒瀹氬悕绉�
 

--
Gitblit v1.8.0