From 3d3db1ddbf227749c2de72856669171a9345937e Mon Sep 17 00:00:00 2001
From: Dana <Dana_Lee1016@126.com>
Date: 星期一, 01 十二月 2025 11:32:00 +0800
Subject: [PATCH] 1.h264Encoder加上 日志写入文件 2.返回文件列表修改

---
 app/src/main/java/com/anyun/h264/H264EncodeService.java |   40 ++++++++++++++++++++++++++++++----------
 1 files changed, 30 insertions(+), 10 deletions(-)

diff --git a/app/src/main/java/com/anyun/h264/H264EncodeService.java b/app/src/main/java/com/anyun/h264/H264EncodeService.java
index d94997a..eab4a1f 100644
--- a/app/src/main/java/com/anyun/h264/H264EncodeService.java
+++ b/app/src/main/java/com/anyun/h264/H264EncodeService.java
@@ -536,12 +536,33 @@
      */
     private ResourceInfo createResourceInfoFromFile(File file, Date startDate, Date endDate) {
         try {
-            // 浠庢枃浠跺悕鎴栨枃浠朵慨鏀规椂闂磋幏鍙栨枃浠舵椂闂�
-            // 杩欓噷鍋囪鏂囦欢鍚嶅寘鍚椂闂存埑锛屾垨鑰呬娇鐢ㄦ枃浠朵慨鏀规椂闂�
-            Date fileDate = new Date(file.lastModified());
+            // 浠庢枃浠跺悕涓彁鍙栨椂闂存埑锛堟牸寮忥細h264_1234567890123.h264锛�
+            String fileName = file.getName();
+            Date startTimeFromFileName = null;
+            
+            if (fileName.startsWith("h264_") && fileName.endsWith(".h264")) {
+                try {
+                    // 鎻愬彇鏂囦欢鍚嶄腑鐨勬椂闂存埑锛坔264_ 鍜� .h264 涔嬮棿鐨勯儴鍒嗭級
+                    String timestampStr = fileName.substring(5, fileName.length() - 5); // 鍘绘帀 "h264_" 鍜� ".h264"
+                    long timestamp = Long.parseLong(timestampStr);
+                    startTimeFromFileName = new Date(timestamp);
+                } catch (NumberFormatException e) {
+                    Timber.w("Failed to parse timestamp from filename: %s", fileName);
+                }
+            }
+            
+            // 濡傛灉鏃犳硶浠庢枃浠跺悕瑙f瀽鏃堕棿鎴筹紝鍒欎娇鐢ㄦ枃浠朵慨鏀规椂闂翠綔涓哄紑濮嬫椂闂�
+            if (startTimeFromFileName == null) {
+                startTimeFromFileName = new Date(file.lastModified());
+            }
+            
+            // 缁撴潫鏃堕棿浣跨敤鏂囦欢淇敼鏃堕棿
+            Date endTimeFromFile = new Date(file.lastModified());
             
             // 妫�鏌ユ枃浠舵椂闂存槸鍚﹀湪鎸囧畾鑼冨洿鍐�
-            if (fileDate.before(startDate) || fileDate.after(endDate)) {
+            // 寮�濮嬫椂闂村簲璇� >= startDate锛岀粨鏉熸椂闂村簲璇� <= endDate
+            // 濡傛灉鏂囦欢鐨勫紑濮嬫椂闂村湪鑼冨洿鍐咃紝鎴栬�呯粨鏉熸椂闂村湪鑼冨洿鍐咃紝鎴栬�呮枃浠舵椂闂磋寖鍥村寘鍚煡璇㈣寖鍥达紝鍒欏寘鍚鏂囦欢
+            if (startTimeFromFileName.after(endDate) || endTimeFromFile.before(startDate)) {
                 return null; // 涓嶅湪鏃堕棿鑼冨洿鍐�
             }
             
@@ -551,13 +572,12 @@
             // 閫昏緫閫氶亾鍙凤紙榛樿鍊硷紝瀹為檯搴斾粠閰嶇疆鑾峰彇锛�
             resourceInfo.setLogicalChannelNumber((byte) 1);
             
-            // 寮�濮嬫椂闂村拰缁撴潫鏃堕棿锛堜娇鐢ㄦ枃浠朵慨鏀规椂闂达級
+            // 寮�濮嬫椂闂达細浠庢枃浠跺悕涓殑鏃堕棿鎴�
             SimpleDateFormat bcdFormat = new SimpleDateFormat("yyMMddHHmmss", Locale.CHINA);
-            resourceInfo.setStartTime(bcdFormat.format(fileDate));
-            // 缁撴潫鏃堕棿鍙互浣跨敤鏂囦欢淇敼鏃堕棿鍔犱笂涓�涓粯璁ゆ椂闀匡紙渚嬪1鍒嗛挓锛�
-            long fileDuration = 60000; // 榛樿1鍒嗛挓锛屽疄闄呭簲璇ユ牴鎹枃浠跺唴瀹硅绠�
-            Date endTime = new Date(fileDate.getTime() + fileDuration);
-            resourceInfo.setEndTime(bcdFormat.format(endTime));
+            resourceInfo.setStartTime(bcdFormat.format(startTimeFromFileName));
+            
+            // 缁撴潫鏃堕棿锛氫娇鐢ㄦ枃浠朵慨鏀规椂闂�
+            resourceInfo.setEndTime(bcdFormat.format(endTimeFromFile));
             
             // 鎶ヨ鏍囧織锛堥粯璁ゅ�硷紝瀹為檯搴斾粠鏂囦欢鍏冩暟鎹幏鍙栵級
             resourceInfo.setAlarmFlag(0L);

--
Gitblit v1.8.0