|  |  |  | @ -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() | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
	
		
			
				
					|  |  |  | 
 |