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? {