屏幕录制器






3.33/5 (28投票s)
使用 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();
}