public void SwitchRECState(EMRECState state) { switch (state) { case EMRECState.EMREC_RECORD: { if (recState == EMRECState.EMREC_STOP) { StartRecord(); } } break; case EMRECState.EMREC_DELAY: { if (recState == EMRECState.EMREC_RECORD) { recState = EMRECState.EMREC_DELAY; } } break; case EMRECState.EMREC_STOP: { if (recState == EMRECState.EMREC_RECORD || recState == EMRECState.EMREC_DELAY) { StopRecord(); } } break; default: break; } }
private void StopRecord() { string outFilePath = ""; if (bRECValid) { outFilePath = GetAppendFilePath(); RecordWarVideo(new SWarGloryMomentVideoData(recType, outFilePath)); } gameview_stop_screenCapture data = new gameview_stop_screenCapture(); data.nValid = bRECValid ? 1 : 0; data.szOutFilePath = outFilePath; ViewEventHelper.Instance.SendCommand <gameview_stop_screenCapture>(GameLogicDef.GVIEWCMD_SCREENOPEN_STOP, ref data); bRECValid = false; recType = EMScreenRECType.EMSS_Invalid; checkPointTime = 0; nHeroID = 0; recState = EMRECState.EMREC_STOP; }
private void StartRecord() { if (!bOpenREC) { return; } if (GameLogicAPI.isMainMap(SceneManager.Instance.getCurrentMapId())) { return; } string rootPath = ViewConfigManager.DataUserPath; if (rootPath == "") { return; } string tempPath = rootPath + "/" + szTempPathName; if (!Directory.Exists(tempPath)) { Directory.CreateDirectory(tempPath); } gameview_start_screenCapture data = new gameview_start_screenCapture(); if (Application.isEditor) { data.point_x = 0; data.point_y = 0; int width, height; ImageSetting.GetMainMonitorSize(out width, out height); data.width = width; data.height = height; } else { RECTAPI rect = new RECTAPI(); GameLogicAPI.GetWindowRect(Initialize.m_WindowHwnd, ref rect); data.point_x = rect.left; data.point_y = rect.top; int titleHeight = GameLogicAPI.GetSystemMetrics((int)ESystemMetrics.SM_CYCAPTION); //int frameBorder = GameLogicAPI.GetSystemMetrics((int)ESystemMetrics.SM_CXFRAME); data.width = rect.right - rect.left; data.height = rect.bottom - rect.top; if (rect.top > 0) { data.point_y += titleHeight; data.height -= titleHeight; } } data.width = Mathf.Abs(data.width % 2 == 0 ? data.width : data.width - 1); data.height = Mathf.Abs(data.height % 2 == 0 ? data.height : data.height - 1); data.szTempFilePath = tempPath; ViewEventHelper.Instance.SendCommand <gameview_start_screenCapture>(GameLogicDef.GVIEWCMD_SCREENOPEN_OPEN, ref data); bRECValid = false; nHeroID = 0; checkPointTime = 0; recType = EMScreenRECType.EMSS_Invalid; recState = EMRECState.EMREC_RECORD; }