终于完成了初步的C# 界面的编程,过来写一下过程吧

1、C#新项目-控件的添加

具体情况参考我的另一片。地址:c# 窗体介绍

2、控件的说明

这是我制作的图样


    左上角是视频播放器控件、右侧两个框是图片控件


    右下角是启动的按钮。四个按钮左面是选择具体的方法

3、实现的对应逻辑

1、视频播放控件,当点击打开文件的时候选择需要检测的视频,并且显示到控件中,同时为了达到检测美观的程度,当实现检测的时候,将播放器下面的控制条给去掉。

2、图片控件:当点击检测程序的时候,将读取检测程序保存下来的图片结果,对文件夹下的所有图片进行遍历,显示到图片控件中。

3、打开目录:点击后进行选择要检测的视频,并且将此路径交给"开始检测"。


4、选择对应的方法进行检测。选择后交个开始检测步骤。

5、开始检测:点击开始检测后,执行检测程序的.exe文件,并且读取可执行文件产生的图片结果,放映到图片控件中。


6、暂停:点击后 ,暂停播放和暂停检测;

7、停止:点击后停止检测;

4 相关代码

4.1 打开目录
 //打开目录,选择检测视频文件
        private void button1_Click(object sender, EventArgs e)
        {
            //FolderBrowserDialog folderDlg = new FolderBrowserDialog();
           // folderDlg.ShowDialog();
           // textBox1.Text = "" + folderDlg.SelectedPath;
            //axWindowsMediaPlayer1.URL = "" + folderDlg.SelectedPath+"/2111.mp4";
            //OpenFileDialog open = new OpenFileDialog();
           // open.Filter = "(mp3,wav,mp4,mov,wmv,mpg)|*.mp3;*.wav;*.mp4;*.mov;*.wmv;*.mpg|all files|*.*";
           // textBox1.Text = "" + open.FileName;
          //  axWindowsMediaPlayer1.URL = "" + open.FileName;
            //axWindowsMediaPlayer1.URL = @textBox1.Text+"/119.avi";
            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            openFileDialog1.Filter = "媒体文件(所有类型)|*.mp3;*.mpeg;*.wma;*.wmv;*.wav;*.avi";
            if (openFileDialog1.ShowDialog() == DialogResult.OK)
            {
                axWindowsMediaPlayer1.URL = openFileDialog1.FileName;
                axWindowsMediaPlayer1.Ctlcontrols.pause();
               // button3_Click( sender,  e);
                // 将路径参数赋值给 status,在开始检测环节向可执行文件赋值。
                status = openFileDialog1.FileName;
                //axWindowsMediaPlayer1.Ctlcontrols.pause();
               
            }
//            

          
        } 
4.2 开始检测
  //检测代码的实现
        private void button2_Click(object sender, EventArgs e)
        {
            //C:\Users\Administrator\Documents\Visual Studio 2013\Projects\Motion_Detection\Debug
            //执行可执行文件,并且乡里面传递参数(选择的视频路径)
          System.Diagnostics.Process.Start(@"C:\Users\Administrator\Documents\Visual Studio 2013\Projects\motion\Debug\motion.exe", status);

            //选择执行后的 检测结果目录
            String dir1 = @"C:\\Users\\Administrator\\color\\";
             /*files = Directory.GetDirectories(@"C:\\Users\\Administrator\\image\\");
             for (int i = 0; i < Directory.GetDirectories(path).Count(); i++)
             {
                 Console.WriteLine(aa[i]);
             }*/
           // DirectoryInfo di = new DirectoryInfo(dir);
            //FileInfo[] arrFi = di.GetFiles("*.jpg*");
            //SortAsFileName(ref arrFi);

            pic = Directory.GetFiles(dir, "*.jpg");
            color = Directory.GetFiles(dir1, "*.jpg");
            //要注意一点的是 排序是按照0、1、10、100、11、。。。不是按照0.1.2.3这种方式
         
            //DirectoryInfo dirinfo = new DirectoryInfo(dir);
            //FileInfo[] sortList = dirinfo.GetFiles(".jpg");
           // Array.Sort(sortList, new MyDateSorter());
           // foreach (FileInfo item in sortList)
          //  {

                //System.Console.WriteLine(item.FullName);
                //Response.Write(item.FullName + "<br" + " />");
          //  }     
             //color = Directory.GetFiles(dir1).Where(x => x.EndsWith(".jpg", StringComparison.OrdinalIgnoreCase) | x.EndsWith(".bmp", StringComparison.OrdinalIgnoreCase)).ToArray();
            // IEnumerable<String> query = pic.OrderBy(x => x);
           // foreach (String  item in query)
           // {

             //   Console.Out.Write(item);
                //Response.Write(item.FullName + "<br" + " />");
          // }     
           // pic.OrderBy(ss => new FileInfo(ss).CreationTime);
             //color.OrderBy(ss => new FileInfo(ss).DirectoryName);
            axWindowsMediaPlayer1.Ctlcontrols.play();
            timer1.Start(); 
        }
        //编写

暂停 和 停止 就比较简单了 就是操作定时器进行遍历 以及 操作一下播放器就可以了。这个我就直接上传一份源代码 吧

源代码

完成以上工作,总的界面信息总算是完成了。接下来继续完善的更丰富一些吧。继续加油。

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐