private void Test(RecorderCodecs codec) { var duration = TimeSpan.FromSeconds(10); var fileName = Path.Combine(Environment.CurrentDirectory, codec + ".avi"); Debug.WriteLine("Начинаем запись экрана"); var recorder = new Recorder(new RecorderParams(fileName, 6, codec, 50)); Debug.WriteLine($"Пауза на {duration}"); Thread.Sleep(60000); Debug.WriteLine("Завершаем запись экрана"); recorder.Dispose(); Thread.Sleep(500); Debug.WriteLine($"Путь к файлу: {fileName}"); Debug.WriteLine("Проверяем файл"); var fileInfo = new FileInfo(fileName); var bytes = fileInfo.Length; var kBytes = bytes / 1024; var mBytes = kBytes / 1024; Debug.WriteLine($"Размер файла: {mBytes}MB / {kBytes}KB"); }
public RecorderParams(string filename, int frameRate, RecorderCodecs codec, int quality) { this._fileName = filename; this.FramesPerSecond = frameRate; switch (codec) { case RecorderCodecs.Uncompressed: this._codec = KnownFourCCs.Codecs.Uncompressed; break; case RecorderCodecs.MotionJpeg: this._codec = KnownFourCCs.Codecs.MotionJpeg; break; case RecorderCodecs.MicrosoftMpeg4V3: this._codec = KnownFourCCs.Codecs.MicrosoftMpeg4V3; break; case RecorderCodecs.MicrosoftMpeg4V2: this._codec = KnownFourCCs.Codecs.MicrosoftMpeg4V2; break; case RecorderCodecs.Xvid: this._codec = KnownFourCCs.Codecs.Xvid; break; case RecorderCodecs.DivX: this._codec = KnownFourCCs.Codecs.DivX; break; case RecorderCodecs.X264: this._codec = KnownFourCCs.Codecs.X264; break; default: throw new ArgumentOutOfRangeException(nameof(codec), codec, null); } this.Quality = quality; this.Height = Convert.ToInt32(SystemParameters.PrimaryScreenHeight); this.Width = Convert.ToInt32(SystemParameters.PrimaryScreenWidth); }