Exemplo n.º 1
0
        public void AddFrame_WhenFrameHeightIsIncorrect_Throws()
        {
            var flashScreenVideo = new FlashScreenVideo(new FlashScreenVideoParameters(32, 16, 30));

            var ex = Assert.Throws <ArgumentException>(() => flashScreenVideo.AddFrame(new BitmapVideoFrame(new Bitmap(32, 20))));

            Assert.Contains(ex.Message, "The frame dimensions must exactly equal those of the video.");
        }
Exemplo n.º 2
0
        public void Video_ReturnsVideo()
        {
            var grabber = new ScreenGrabber(new CaptureParameters());
            var video   = new FlashScreenVideo(new FlashScreenVideoParameters(grabber.ScreenshotWidth, grabber.ScreenshotHeight, 5));

            using (var recorder = new ScreenRecorder(grabber, video))
            {
                Assert.AreSame(video, recorder.Video);
            }
        }
Exemplo n.º 3
0
        public void Stop_WhenDisposed_Throws()
        {
            var grabber  = new ScreenGrabber(new CaptureParameters());
            var video    = new FlashScreenVideo(new FlashScreenVideoParameters(grabber.ScreenshotWidth, grabber.ScreenshotHeight, 5));
            var recorder = new ScreenRecorder(grabber, video);

            recorder.Dispose();

            Assert.Throws <ObjectDisposedException>(() => recorder.Stop());
        }
Exemplo n.º 4
0
        public void AddFrame_WhenFrameIsValid_IncreasesFrameCount()
        {
            var flashScreenVideo = new FlashScreenVideo(new FlashScreenVideoParameters(32, 32, 30));

            flashScreenVideo.AddFrame(new BitmapVideoFrame(new Bitmap(32, 32)));
            Assert.AreEqual(1, flashScreenVideo.FrameCount);

            flashScreenVideo.AddFrame(new BitmapVideoFrame(new Bitmap(32, 32)));
            Assert.AreEqual(2, flashScreenVideo.FrameCount);
        }
Exemplo n.º 5
0
        public void Constructor_WhenVideoSizeDoesNotMatchGrabberScreenshotsSize_Throws()
        {
            var grabber = new ScreenGrabber(new CaptureParameters());

            var video = new FlashScreenVideo(new FlashScreenVideoParameters(1, grabber.ScreenshotHeight, 5));
            var ex    = Assert.Throws <ArgumentException>(() => new ScreenRecorder(grabber, video));

            Assert.Contains(ex.Message, "The video dimensions must be exactly the same as the screenshots obtained by the grabber.");

            video = new FlashScreenVideo(new FlashScreenVideoParameters(grabber.ScreenshotWidth, 1, 5));
            ex    = Assert.Throws <ArgumentException>(() => new ScreenRecorder(grabber, video));
            Assert.Contains(ex.Message, "The video dimensions must be exactly the same as the screenshots obtained by the grabber.");
        }
Exemplo n.º 6
0
        public void Start_CapturesVideoUntilStopped()
        {
            var grabber = new ScreenGrabber(new CaptureParameters()
            {
                Zoom = 0.25
            });
            var video = new FlashScreenVideo(new FlashScreenVideoParameters(grabber.ScreenshotWidth, grabber.ScreenshotHeight, 5));

            using (var recorder = new ScreenRecorder(grabber, video))
            {
                recorder.Start();
                Thread.Sleep(2000);
                recorder.Stop();

                TestLog.EmbedVideo("Video", recorder.Video);
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Starts recording a screen capture video of the entire desktop.
        /// </summary>
        /// <remarks>
        /// <para>
        /// Recording a screen capture video can be very CPU and space intensive particularly
        /// when running tests on a single-core CPU.  We recommend calling
        /// <see cref="StartRecording(CaptureParameters, double)" /> with
        /// a <see cref="CaptureParameters.Zoom" /> factor of 0.25 or less and a frame rate
        /// of no more than 5 to 10 frames per second.
        /// </para>
        /// </remarks>
        /// <param name="parameters">The capture parameters.</param>
        /// <param name="framesPerSecond">The number of frames per second to capture.</param>
        /// <returns>The recorder.</returns>
        /// <exception cref="ArgumentNullException">Thrown if <paramref name="parameters"/> is null.</exception>
        /// <exception cref="ScreenshotNotAvailableException">Thrown if a screenshot cannot be captured at this time.</exception>
        public static ScreenRecorder StartRecording(CaptureParameters parameters, double framesPerSecond)
        {
            if (parameters == null)
            {
                throw new ArgumentNullException("parameters");
            }

            ScreenGrabber.ThrowIfScreenshotNotAvailable();

            ScreenGrabber grabber = new ScreenGrabber(parameters);

            try
            {
                FlashScreenVideo video = new FlashScreenVideo(new FlashScreenVideoParameters(
                                                                  grabber.ScreenshotWidth, grabber.ScreenshotHeight, framesPerSecond));

                ScreenRecorder recorder = new ScreenRecorder(grabber, video);
                try
                {
                    recorder.OverlayManager.AddOverlay(GetOverlayManager().ToOverlay());

                    recorder.Start();
                    return(recorder);
                }
                catch
                {
                    recorder.Dispose();
                    throw;
                }
            }
            catch
            {
                grabber.Dispose();
                throw;
            }
        }
Exemplo n.º 8
0
        public void Constructor_WhenScreenGrabberIsNull_Throws()
        {
            var video = new FlashScreenVideo(new FlashScreenVideoParameters(100, 100, 5));

            Assert.Throws <ArgumentNullException>(() => new ScreenRecorder(null, video));
        }
Exemplo n.º 9
0
        public void Save_WhenStreamIsNull_Throws()
        {
            var flashScreenVideo = new FlashScreenVideo(new FlashScreenVideoParameters(32, 16, 30));

            Assert.Throws <ArgumentNullException>(() => flashScreenVideo.Save(null));
        }
Exemplo n.º 10
0
        public void FrameCount_WhenInitiallyCreated_IsZero()
        {
            var flashScreenVideo = new FlashScreenVideo(new FlashScreenVideoParameters(32, 32, 30));

            Assert.AreEqual(0, flashScreenVideo.FrameCount);
        }
Exemplo n.º 11
0
        public void MimeType_ReturnsFlashVideoMimeType()
        {
            var flashScreenVideo = new FlashScreenVideo(new FlashScreenVideoParameters(32, 16, 30));

            Assert.AreEqual(MimeTypes.FlashVideo, flashScreenVideo.MimeType);
        }