Example #1
0
        /// <summary>
        /// 停止录屏
        /// </summary>
        /// <returns></returns>
        public static ScreenRecorderResult StopRecording(Window windowOwner = null)
        {
            int    checkCount     = 0;
            string recordFilePath = GetRecordFilePath();

            while (true)
            {
                if (checkCount > 10)
                {
                    break;
                }

                if (AppUtils.GetFileSizeSafe(recordFilePath) < 2048)
                {
                    Thread.Sleep(200);
                    checkCount++;
                }
                else
                {
                    break;
                }
            }

            ScreenRecorderResult ret = _screenRecorder.StopRecord();
            string microName         = string.Empty;

            if (!string.IsNullOrWhiteSpace(recordFilePath))
            {
                string tempFileName = System.IO.Path.GetFileName(recordFilePath);
                microName = Path.GetFileNameWithoutExtension(tempFileName);
            }

            bool needSaveWindow = false;

            if (needSaveWindow)
            {
                RecordSaveWin win = new RecordSaveWin();
                if (windowOwner != null)
                {
                    win.Owner = windowOwner;
                }

                win.SaveFileNameTbox.Text = microName;

                win.ShowDialog();
                win.SaveRecordAndDeleteFile();
            }
            else
            {
                RecordSaveWin.SaveRecordAndDeleteFile(microName);
            }
            InvokeRecordStateChanged(RecordStatus.RecordComplete);

            _recordingToolWin?.Close();
            _recordingToolWin = null;

            EmptyRecordFilePath();

            return(ret);
        }
Example #2
0
        public void PauseAndResumeRecording()
        {
            if (!RecorderHelper.IsRecording())
            {
                return;
            }

            if (RecorderHelper.IsPausing())
            {
                // 更换暂停按钮图标
                PauseBtn.IsRecording = true;
                ScreenRecorderResult ret = RecorderHelper.ResumeRecording();
                if (ret != ScreenRecorderResult.Success)
                {
                    //MessageBox.Show("");
                }

                //_fileSizeQueryCount = 0;
                _countDownTimer_Elapsed(null, null);
                StartCountDownTimer();
            }
            else
            {
                // 更换暂停按钮图标
                PauseBtn.IsRecording = false;
                ScreenRecorderResult ret = RecorderHelper.PauseRecording();
                if (ret != ScreenRecorderResult.Success)
                {
                    //MessageBox.Show("");
                }

                StopCountDownTimer();
            }
        }
Example #3
0
        /// <summary>
        /// 恢复录屏
        /// </summary>
        /// <returns></returns>
        public static ScreenRecorderResult ResumeRecording()
        {
            ScreenRecorderResult ret = _screenRecorder.ResumeRecord();

            InvokeRecordStateChanged(RecordStatus.Recording);

            return(ret);
        }
Example #4
0
        /// <summary>
        /// 开始录屏
        /// </summary>
        /// <returns></returns>
        public static ScreenRecorderResult StartRecording()
        {
            ScreenRecorderResult ret = _screenRecorder.StartRecord(_recorderSetting);

            InvokeRecordStateChanged(RecordStatus.Recording);

            return(ret);
        }
Example #5
0
        /// <summary>
        /// 初始化
        /// </summary>
        public static void InitializeRecorder()
        {
            ScreenRecorderResult ret = _screenRecorder.InitializeRecord();

            if (ret != ScreenRecorderResult.Success)
            {
                MessageBox.Show("初始化失败, 错误信息:" + ret, "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                IsInitializedError = true;
                return;
            }
            ret = _screenRecorder.SetLicense();
            if (ret != ScreenRecorderResult.Success)
            {
                MessageBox.Show("设置许可证失败,错误信息:" + ret, "错误", MessageBoxButton.OK, MessageBoxImage.Error);
                IsInitializedError = true;
                return;
            }

            IsInitialized = true;

            ConfigureRecordSetting();
        }