From 87d885019c9df22ade809b6a2da06545bff9bf98 Mon Sep 17 00:00:00 2001
From: Dana <Dana_Lee1016@126.com>
Date: 星期五, 30 一月 2026 16:26:04 +0800
Subject: [PATCH] 在 startFileRotationTimer() 的定时回调里,轮换到下一分钟前调用: usb和内部相机
---
app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraRecordManager.java | 49 ++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 44 insertions(+), 5 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 0f56508..cb11b44 100644
--- a/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraRecordManager.java
+++ b/app/src/main/java/com/safeluck/floatwindow/manager/UsbCameraRecordManager.java
@@ -17,6 +17,7 @@
import com.safeluck.floatwindow.MediaArgu;
import com.safeluck.floatwindow.ResponseVO;
import com.safeluck.floatwindow.util.GlobalData;
+import com.safeluck.floatwindow.util.FileUtil;
import com.safeluck.floatwindow.util.VideoFileUtils;
import timber.log.Timber;
@@ -572,14 +573,17 @@
// 閲婃斁褰撳墠璧勬簮
releaseResources();
-
+
// 閲嶅懡鍚嶅垰瀹屾垚鐨勬枃浠�
if (completedVideoFile != null) {
renameCompletedFile(completedVideoFile);
completedVideoFile = null;
}
-
- // 鍒濆鍖栨柊鐨勭紪鐮佸櫒鍜孧uxer
+
+ // 姣忔鍐欏叆鏂版枃浠跺墠锛屾鏌ュ苟娓呯悊瀛樺偍绌洪棿锛圓nYun_VIDEO 涓嬬殑 mp4锛�
+ ensureStorageSpaceForMp4();
+
+ // 鍒濆鍖栨柊鐨勭紪鐮佸櫒鍜孧uxer锛堝垱寤轰笅涓�鍒嗛挓鐨勬柊鏂囦欢锛�
if (!initEncoderAndMuxer()) {
Timber.e("Failed to create new video file");
break;
@@ -647,13 +651,13 @@
}
releaseResources();
-
+
// 閲嶅懡鍚嶅垰瀹屾垚鐨勬枃浠讹紙鍋滄褰曞儚鏃讹級
if (completedVideoFile != null) {
renameCompletedFile(completedVideoFile);
completedVideoFile = null;
}
-
+
Timber.d("RecordThread ended");
}
}
@@ -811,6 +815,41 @@
// 濡傛灉鑾峰彇澶辫触锛岃繑鍥為粯璁ゅ��60绉�
return 60;
}
+
+ /**
+ * 纭繚瀛樺偍绌洪棿瓒冲锛堥拡瀵� AnYun_VIDEO 涓嬬殑 mp4锛�
+ * TF 鍗★細浣跨敤 FileUtil.cleanupH264Files锛堝唴閮ㄥ凡鏀逛负娓呯悊 mp4锛夋寜鏃ユ湡鐩綍鍒犻櫎鏈�鏃╃殑瑙嗛
+ * 鍐呴儴 Flash锛氫娇鐢� FileUtil.ensureInternalFlashSpaceForH264锛堝唴閮ㄥ凡鏀逛负娓呯悊 mp4锛�
+ */
+ private void ensureStorageSpaceForMp4() {
+ if (context == null || mediaArgu == null) {
+ return;
+ }
+ try {
+ int tfFlag = mediaArgu.getTfCardFlag(); // 0-鍐呴儴瀛樺偍锛�1-TF 鍗�
+
+ // 鍏堝畾浣嶅綋鍓嶄娇鐢ㄧ殑鏃ユ湡鐩綍锛屽啀鍙栧叾鐖剁洰褰� AnYun_VIDEO 浣滀负鏍圭洰褰�
+ File dateDir = VideoFileUtils.getVideoDirectory(context, tfFlag);
+ if (dateDir == null) {
+ return;
+ }
+ File rootDir = dateDir.getParentFile(); // .../AnYun_VIDEO
+ if (rootDir == null) {
+ return;
+ }
+
+ String rootPath = rootDir.getAbsolutePath();
+ if (tfFlag == 1) {
+ // TF 鍗★細闄愬埗鎬诲ぇ灏� + 鍓╀綑绌洪棿
+ FileUtil.cleanupH264Files(context, rootPath);
+ } else {
+ // 鍐呴儴 Flash锛氱‘淇濆墿浣欑┖闂� 鈮� 800MB
+ FileUtil.ensureInternalFlashSpaceForH264(context);
+ }
+ } catch (Exception e) {
+ Timber.e(e, "ensureStorageSpaceForMp4 error");
+ }
+ }
/**
* 妫�鏌ュ苟鍚姩Muxer
--
Gitblit v1.8.0