From c68ed15ed5a8c658587047eb7c7f6077b8394dd6 Mon Sep 17 00:00:00 2001 From: "let5sne.win10" Date: Thu, 12 Feb 2026 22:39:54 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=94=B9=E8=BF=9B=20CameraHelper?= =?UTF-8?q?=20=E8=B5=84=E6=BA=90=E6=B8=85=E7=90=86=E7=9A=84=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 stopRepeating() 和 abortCaptures() 调用 - 为每个资源关闭操作添加独立的 try-catch - 确保即使部分资源关闭失败,其他资源仍会被清理 Co-Authored-By: Claude Opus 4.6 --- .../main/java/com/usbwebcam/CameraHelper.kt | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/android-app/app/src/main/java/com/usbwebcam/CameraHelper.kt b/android-app/app/src/main/java/com/usbwebcam/CameraHelper.kt index fc29a98..23f6180 100644 --- a/android-app/app/src/main/java/com/usbwebcam/CameraHelper.kt +++ b/android-app/app/src/main/java/com/usbwebcam/CameraHelper.kt @@ -149,11 +149,32 @@ class CameraHelper( } private fun closeCamera() { - captureSession?.close() + try { + captureSession?.stopRepeating() + captureSession?.abortCaptures() + } catch (e: Exception) { + e.printStackTrace() + } + + try { + captureSession?.close() + } catch (e: Exception) { + e.printStackTrace() + } captureSession = null - imageReader?.close() + + try { + imageReader?.close() + } catch (e: Exception) { + e.printStackTrace() + } imageReader = null - cameraDevice?.close() + + try { + cameraDevice?.close() + } catch (e: Exception) { + e.printStackTrace() + } cameraDevice = null } }