65.9K
CodeProject 正在变化。 阅读更多。
Home

屏幕录制器

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.33/5 (28投票s)

2016年10月5日

CPOL
viewsIcon

65173

使用 C# 创建屏幕录制器

引言

在本技巧中,我们使用 C#.NET 创建一个定制的屏幕录制器。

背景

在工作中,我们需要一个屏幕录制器来记录流程。不幸的是,我们没有可用的屏幕录制器。所以我用 C# 开发了一个屏幕录制器来记录我们的屏幕。

Using the Code

首先,创建一个源并从 nuget 库安装 Accord.Video.FFMPEG

屏幕录制器由一个定时器和 VideoFileWriter 创建。

首先,初始化一个定时器控件并为其分配属性。然后,为该定时器创建一个 tick 事件。

timer1 = new Timer();
timer1.Interval = 20;
timer1.Tick += timer1_Tick;
vf = new VideoFileWriter();
vf.Open("Exported_Video.avi", 800, 600, 25, VideoCodec.MPEG4, 1000000);

创建一个开始按钮来启动 timer

private void button1_Click(object sender, EventArgs e)
{
    timer1.Start();
}

timer tick 事件中,从 VideoFileWriter 的大小创建一个位图图像,并捕获屏幕并将其写入位图图像。然后,将图像写入 VideoFileWriter

private void timer1_Tick(object sender, EventArgs e)
{
    bp = new Bitmap(800, 600);
    gr = Graphics.FromImage(bp);
    gr.CopyFromScreen(0, 0, 0, 0, new Size(bp.Width, bp.Height));
    pictureBox1.Image = bp;
    pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage;
    vf.WriteVideoFrame(bp);
}

创建一个 stop 按钮来 stop timer 并保存文件。

private void button2_Click(object sender, EventArgs e)
{
    timer1.Stop();
    vf.Close();
}
© . All rights reserved.