From b531e9da31af2360948ff58c0c235a5417c86190 Mon Sep 17 00:00:00 2001
From: xiaowusky <chenyangyang3858@dingtalk.com>
Date: Thu, 9 Nov 2023 10:07:00 +0800
Subject: [PATCH] =?UTF-8?q?desc:TODO=E5=BC=80=E5=85=B3=E6=91=84=E5=83=8F?=
 =?UTF-8?q?=E5=A4=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../safetywatcher/watcher/ui/HomeActivity.kt  | 73 +++++++++++--------
 .../safetywatcher/watcher/utils/LztekUtil.kt  |  5 +-
 2 files changed, 47 insertions(+), 31 deletions(-)

diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HomeActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HomeActivity.kt
index 75e47fa..d893e6f 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HomeActivity.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/HomeActivity.kt
@@ -80,7 +80,8 @@ class HomeActivity : NoOptionsActivity() {
                 cameraSwitch.performClick()
             }
             cameraSwitch.setOnCheckedChangeListener { buttonView, isChecked ->
-                if (isChecked) RecordHelper.startRecording() else RecordHelper.stopRecording()
+//                if (isChecked) RecordHelper.startRecording() else RecordHelper.stopRecording()
+                if (isChecked) onCameraOpen() else onCameraClose()
             }
 
             itemSetting.post {
@@ -99,34 +100,56 @@ class HomeActivity : NoOptionsActivity() {
         }
     }
 
+    private fun onCameraOpen() {
+        // 启动录制编码
+        RecordHelper.startRecording()
+        // TODO 开启GPIO
+
+        setForCamera()
+    }
+
+    private fun onCameraClose() {
+        // 暂停录制编码
+        RecordHelper.stopRecording()
+        // TODO 关闭GPIO
+
+        // 关闭视频播放
+        mClient?.stop()
+        mClient = null
+        AppData.setCameraData(false)
+        changeViewStatus()
+    }
+
     private var lastUpdateTime = 0L
 
     /**
      * 设置摄像头
      */
     private fun setForCamera() {
-        mClient?.stop()
-        mClient = EasyPlayerClient(
-            this@HomeActivity,
-            mBinding.surface,
-            null
-        ) {
-            RecordHelper.onFrameAvailable(mBinding.surface, it)
-            val currentTimeMillis = System.currentTimeMillis()
-            if (currentTimeMillis - lastUpdateTime > 1000) {
-                lastUpdateTime = currentTimeMillis
-                if (!AppData.hasCameraData()) {
-                    AppData.setCameraData(true)
-                    changeViewStatus()
-                    closeLoadingDialog()
+        if (mBinding.cameraSwitch.isChecked) {
+            mClient?.stop()
+            mClient = EasyPlayerClient(
+                this@HomeActivity,
+                mBinding.surface,
+                null
+            ) {
+                RecordHelper.onFrameAvailable(mBinding.surface, it)
+                val currentTimeMillis = System.currentTimeMillis()
+                if (currentTimeMillis - lastUpdateTime > 1000) {
+                    lastUpdateTime = currentTimeMillis
+                    if (!AppData.hasCameraData()) {
+                        AppData.setCameraData(true)
+                        changeViewStatus()
+                        closeLoadingDialog()
+                    }
+                    watchCamera(DELAY_TIME_CHECK_CAMERA)
                 }
-                watchCamera(DELAY_TIME_CHECK_CAMERA)
             }
+            mClient?.play(CAMERA_URL)
+            // 第一次很慢,所以10秒
+            watchCamera(DELAY_TIME_OPEN_CAMERA)
+            showLoadingDialog(R.string.connecting_camera)
         }
-        mClient?.play(CAMERA_URL)
-        // 第一次很慢,所以10秒
-        watchCamera(DELAY_TIME_OPEN_CAMERA)
-        showLoadingDialog(R.string.connecting_camera)
     }
 
     /**
@@ -265,16 +288,6 @@ class HomeActivity : NoOptionsActivity() {
         Process.killProcess(Process.myPid())
     }
 
-    override fun onPause() {
-        super.onPause()
-        mClient?.pause()
-    }
-
-    override fun onResume() {
-        super.onResume()
-        mClient?.resume()
-    }
-
     override fun onBackPressed() {
 //        super.onBackPressed()
     }
diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/LztekUtil.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/LztekUtil.kt
index 2e0a9ef..cd3cbe1 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/LztekUtil.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/LztekUtil.kt
@@ -53,7 +53,10 @@ object LztekUtil {
 
     fun setRtspUrl(str: String?) {
         this.rtspUrl = str
-        rtspUrl?.let { PushHelper.setPushUrl(it) }
+        rtspUrl?.let {
+            PushHelper.setPushUrl(it)
+            PushHelper.startStream(true)
+        }
     }
 
     private fun getStorageCardPath(): String? {