Exemplo n.º 1
0
        public void StartRecording(RecordingParameters parameters)
        {
            if (state_ != State.Running)
            {
                var param   = parameters as RecordingParameters;
                var monitor = NativeRecorder.GetMonitor(param.Monitor);
                if (monitor == null || monitor.Width <= 0 || monitor.Height <= 0)
                {
                    Debug.LogErrorFormat("Failed to get monitor ({0}) informaiton", param.Monitor);
                    return;
                }

                monitorNumber_ = param.Monitor;

                int res = NativeRecorder.StartRecording(monitor.Width, monitor.Height, param.RecordLength, param.Fps, param.Quality);
                state_ = State.Running;

                recordingTimer_.Reset(); // need?
                recordingTimer_.Start();

                fps_ = param.Fps;
                msList.Clear();
                msList.Enqueue(recordingTimer_.ElapsedMilliseconds);

                startFrameCaptureThread();
                startFrameEncodeThread();
                Debug.Log("StartRecording: result=" + (APIResult)res);
            }
        }