none
帮我看看这个代码有什么问题,运行就假死 RRS feed

  • 问题

  • 主窗体代码

    List<Form2> cc = new List<Form2>();
        private void Form1_Load(object sender, EventArgs e)
        {
          cc.Add(new Form2());
          cc.Add(new Form2());
          cc[0].Show();
          cc[1].Show();
          cc[0].Text = "Form 0";
          cc[1].Text = "Form 1";
        }
    
        private void button1_Click(object sender, EventArgs e)
        {
          OpenFileDialog op = new OpenFileDialog();
          if (op.ShowDialog() == DialogResult.OK)
          {
            cc[0].play(op.FileName);
            cc[1].play(op.FileName);
          }
        }
    

    Form2代码

     private void Form2_Load(object sender, EventArgs e)
        {
            this.axWindowsMediaPlayer1.settings.setMode("loop", true);
        }
        public void play(string URL)
        {
            this.axWindowsMediaPlayer1.URL = URL;
        }
    我一点击FORM1中的按钮选择一个视频文件之后程序就失去响应了.
    2010年7月19日 6:24

答案

全部回复

  • 读取的视频文件过大吧。

    导致的UI进程阻塞


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    老徐的博客】:http://www.cnblogs.com/frank_xl/

    【WCF中文技术论坛】:微软WCF中文技术论坛
    【WCF英文技术论坛】:微软WCF英文技术论坛

    2010年7月19日 7:43
    版主
  • 楼主先试一下播放一个 5MB 左右的 MP3,然后看看是不是同样有 hang up 的情况,如果没有,则说明是因为播放文件过大,Media Player 在初始化需要时间的缘故。


    Mark Zhou
    2010年7月19日 8:05
  • 刚用相同代码试验过,没有问题。上面几位说的对。

            private void button1_Click(object sender, EventArgs e)
            {
                cc[0].play(@"d:\clock.avi");
                cc[1].play(@"d:\clock.avi");
            }

    你可以在资源管理器里,右击视频文件,选择[使用Media Player播放],看看是否正常。

    2010年7月19日 8:51