2024年6月11日发(作者:)

实验四 截屏录播软件设计

一、实验目的:

掌握通过窗体应用编程实现一个截屏录制并播放的软件。

二、实验内容:

1、实现屏幕录制,并将录制画面(视频)用图片数组保存。

2、录制图片数组对象可以保存为文件(可以考虑对象序列化等处理方式),并播放。

3、可以在播放中通过进度条观测播放进度,并快进、快退。

4、在进度条中可以通过鼠标右击出现上下文菜单选择在播放时间节点上增加对播放

视频的评论。

5、本实验需要小组成员协同合作3个实验单元完成。

三、收获与体会(要求小组成员简要填写在课程实验中遇到的主要问题以及解决方法,

并手工签上小组所有成员姓名):

遇到的问题及解决方法:

本次试验我们创建了PlayVideo和RecVideo两个类用以管理播放和录制,

NoteManagement用以管理注释。我们通过Timer控制截屏,并将其转换为BMP格式追

加入一个文件中,并将单帧大小保存进后缀为.config的XML文件中。在读取时读回这

个单帧大小,通过NextFrame方法读取下一帧的画面并返回一个Bitmap对象,在播放窗

体中将这个Bitmap装入PictureBox以实现显示。对于注释的管理采用XML文件保存和

List缓存的双重机制。在打开视频时,同时打开.note的XML文件,读入注释列表,

放入缓存中。每次更改都先写入缓存,然后再写入文件。程序内部处理中一律使用缓存

进行处理以避免对文件的读写操作。

签名:

1

附加代码

using System;

using c;

using ;

using ;

using g;

using ;

using ;

using ;

namespace 屏幕录播

{

///

/// 播放录制的截屏视频

///

public class PlayVideo

{

protected Bitmap cache;

protected FileStream fs;

string _path = "";

protected int Length = 5298176;

///

///

///

/// 文件路径

public PlayVideo(string Path)

{

_path = Path;

fs = new FileStream(Path, );

XmlDocument xml = new XmlDocument();

(ectoryName((string)Path) + ""+

eNameWithoutExtension((string)Path) + ".config");

Length = (xml["FrameSize"].InnerText);

}

///

/// 读取路径

///

public string Path

{

get

{

return _path;

2