예제 #1
0
        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");
        }
예제 #2
0
        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);
        }