From de7368d08258b80af017bc3a0ac891b314f01e36 Mon Sep 17 00:00:00 2001
From: Dana <Dana_Lee1016@126.com>
Date: 星期五, 06 二月 2026 13:31:59 +0800
Subject: [PATCH] 1.录像、推流 回调,关联摄像头 2.推流 startPush主线程(P2 3.
---
app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraPushManager.java | 27 ++++++++++++++++++++++++---
1 files changed, 24 insertions(+), 3 deletions(-)
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 076ada8..b78ab51 100644
--- a/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraPushManager.java
+++ b/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraPushManager.java
@@ -97,9 +97,24 @@
}
/**
- * 寮�濮嬫帹娴�
+ * 寮�濮嬫帹娴侊紙瀵瑰鎺ュ彛锛�
+ * 娉ㄦ剰锛欰livcLivePusher 蹇呴』鍦ㄤ富绾跨▼鍒濆鍖栵紝鍚﹀垯浼氭姏鍑�
+ * "Can't create handler inside thread that has not called Looper.prepare()"
*/
public void startPush(MediaArgu media) {
+ // 纭繚鍦ㄤ富绾跨▼鎵ц瀹為檯鐨勫惎鍔ㄩ�昏緫
+ if (Looper.myLooper() == Looper.getMainLooper()) {
+ startPushInternal(media);
+ } else {
+ // 褰撳墠鏄� Binder 绾跨▼鎴栧叾浠栧悗鍙扮嚎绋嬶紝鍒囧埌涓荤嚎绋�
+ mainHandler.post(() -> startPushInternal(media));
+ }
+ }
+
+ /**
+ * 鐪熸鐨勫惎鍔ㄦ帹娴侀�昏緫锛屽繀椤诲湪涓荤嚎绋嬭皟鐢�
+ */
+ private void startPushInternal(MediaArgu media) {
if (media == null) {
notifyCallback(1, -1, "MediaArgu is null");
return;
@@ -121,7 +136,7 @@
}
try {
- // 鍒濆鍖栨帹娴丼DK
+ // 鍒濆鍖栨帹娴丼DK锛堟鏃跺凡淇濊瘉鍦ㄤ富绾跨▼锛�
initAlivcPusher();
setWaterMask();
pushStarted = false;
@@ -135,7 +150,6 @@
cameraExists = true;
Timber.d("USB鎽勫儚澶存墦寮�鎴愬姛");
-
notifyCallback(1, 0, "鎺ㄦ祦绾跨▼宸插惎鍔紝绛夊緟鎺ㄦ祦鐘舵�佸氨缁�");
} catch (Exception e) {
@@ -767,6 +781,13 @@
response.setType(type);
response.setErrCode(errCode);
response.setMessage(message);
+ // 璁剧疆 cameraId锛氭牴鎹� usbCameraId 鍖哄垎 P1(1) 鍜� P2(2)
+ if (mediaArgu != null) {
+ int usbCameraId = mediaArgu.getUsbCameraId();
+ response.setCameraId(usbCameraId == 2 ? 2 : 1); // 2 -> P2, 鍏朵粬 -> P1
+ } else {
+ response.setCameraId(1); // 榛樿 P1
+ }
callback.onResult(response);
}
}
--
Gitblit v1.8.0