图片框中的视频c#

时间:2015-11-23 22:59:53

标签: c# forms video picturebox

我在第二种形式的图片框中检索视频时遇到问题。 这是我的代码

Main.cs

  private void start_video()
    {

        while (!needClose)
        {
            video.capture();
            pictureBox1.Image = ImageFrame.video;
        }
    }


    private void button1_Click(object sender, EventArgs e)
    {
        camera = new Camera();
        camera.Show();
    }

这是我的班级(当然有一个设置视频的功能)

  public class ImageFrame
  {
   public static Image video { get; set; }
  }

这是我的Camera.cs

 public partial class Camera : Form
{
    private bool test = false;

    public Camera()
    {
        InitializeComponent();
        returnVideo();
    }

   private void returnVideo()
    {
        while (!test)
        {
            pictureBox2.Image = ImageFrame.video;
        }
    }

视频在pictureBox1中运行正常,但是当我点击button1打开新表格检索pictureBox1的同一视频时,它就会冻结。 为什么?如果我不使用它只会显示一个帧,但我需要视频(来自相机,所以在实时视图中)。

1 个答案:

答案 0 :(得分:0)

这会阻止事件循环运行,因此在每个窗口更改UI更新都将停止并因此冻结。

    while (!test) // = while(true)
    {
        pictureBox2.Image = ImageFrame.video;
    }

使用计时器每50毫秒或更短时间更新图片。

编辑:一些伪代码:

timer1.Interval=50;
timer1.Tick+=timer1_Tick;
timer1.Start();

void timer1_Tick(..)
{
  pictureBox2.Image = ImageFrame.video;
}

这也减少了CPU负载。