public partial class A : Form
{
Capture cap;
string vedioName = @"\testvedio.mp4", path = @"\\N\项目\临时测试视频";//path = System.AppDomain.CurrentDomain.BaseDirectory;
int videoFps;//帧率,每秒多少张/FPS
int videoCount;//总帧数
int videoInterval;//播放间隔
public A()
{
InitializeComponent();
}
public void init()
{
//回放视频的一些信息,视频在定时器timer1中刷新
cap = new Capture(path + vedioName);
videoFps = (int)cap.GetCaptureProperty(CapProp.Fps);
videoCount = (int)cap.GetCaptureProperty(CapProp.FrameCount);
if (videoFps!=0)
videoInterval = (int)(1000 / videoFps);
timer1.Interval = videoInterval;
timer1.Start();
}
private void A_Load(object sender, EventArgs e)
{
//设置label FPS背景透明
this.FPS.Parent = this.B;
this.FPS.BackColor = Color.Transparent;
this.FPS.ForeColor = Color.White;
}
private void B_Click(object sender, EventArgs e)
{
}
int i = 1;//记录当前次数(一次25帧)
private void timer1_Tick(object sender, EventArgs e)
{
Mat a = cap.QueryFrame();//读取图像帧
if (a != null)
{
videoFps = (int)cap.GetCaptureProperty(CapProp.Fps);//FPS
FPS.Text = "FPS:" + videoFps + "|" + "进度:" + (i * 1.0f) / (videoCount * 1.0f) * 100 + "%";
System.Threading.Thread.Sleep(videoInterval);
B.BackgroundImage = a.ToImage<Bgr, Byte>().ToBitmap();//pictureBox背景
GC.Collect();//强制清内存
i++;
}
else
{
MessageBox.Show("车况回放完毕");
cap.Stop();
timer1.Stop();
B.BackgroundImage = null;
GC.Collect();//强制清内存
}
}
}
c#_播放器,读取共享文件夹的视频,然后播放,命名空间(using Emgu.CV.CvEnum; using Emgu.CV; using Emgu.Util; using Emgu.CV.UI;)
最新推荐文章于 2024-03-24 15:07:08 发布