现在我想实现这样一个功能,由于需求所要,可以控制视频的播放与结束时间,也就是时间可以由用户自定义,存放在xml文档里面,到了预定的时间就播放用户指定的视频文件,到了指定的结束时间就关闭,请问怎么样实现呢?由于时间紧急,请大家帮忙,谢谢,问题解决后再加分!!!

解决方案 »

  1.   

    用一个timer控件啊,不断的去监视文件
      

  2.   

    谢谢各位,问题解决一定加分!!!
    但问题是,我一直都致力于web的开发,都是帮企业等做网站,企业管理系统等,第一次boss就叫我做这个,很迷惘,所以对以下几点要弄明白的,最好有代码提示,谢谢!1.用线程或者时间控件来查看。是否已经到了预定的时间。如果到了就播放。每次用户新增加文件后,也要更改这个临时的表??
    2.用一个timer控件啊,不断的去监视文件??我的思想也是这样,但是要写的话就没有头绪了,我是打算把所有的记录包括文件名称和时间都写在xml文件里面,请高手继续帮忙,由于时间紧急,我没太多时间看书。
      

  3.   

    1.预定的时间就播放用户指定的视频文件,到了指定的结束时间就关闭
    2.用户自定义播放任务存放在xml文档,使用timer监视这份文件(其实就是下一个播放任务),使用timercallback来通知外部程序两个需求没有什么联系,对于1桌面端视频播放的需求,网络资源很多
    2可以使用windows服务或托盘程序来保证timer的长时间运行,剩下的就是同步用户定义和timer监视和调度的代码了
      

  4.   

    楼上的,你说预定的时间就播放用户指定的视频文件,到了指定的结束时间就关闭网络资源很多,我找不到啊?听起来有点像windows的计划任务一样,但是那个是定死时间的,现在我要的就是差不多这样,但是灵活的,可以有用户定义视频的文件开始结束
      

  5.   

    上面的回复有歧义,任务可以分解为两部分
    1.视频播放需要引用windows media player组件,启用播放和停止可以参考该组件的api
    2.任务调度可以由托盘程序运行,使用timer在相应时刻将窗口唤醒,并且调用wmp组件开始播放视频即可.
      

  6.   

    现在我做到好几步了,遇到了一个问题,我把所有的xml里面的文件路径读出来用控件播放,但是只是能播放第一个path,完了就结束了,不能连续播放以下的文件,代码如下:
    XmlDocument doc=new XmlDocument();
    doc.Load(Application.StartupPath.Trim()+"\\DB\\playlist.xml");
    XmlNodeList root=doc.SelectNodes("Group/Item");
    /* for(int i=0;i<root.Count;i++)
    {
    string path=root[i].Attributes["path"].Value.ToString();
    }   */
    foreach(XmlNode node in root)
    {
    string paths=node.Attributes["path"].Value.ToString();
    axWindowsMediaPlayer1.URL=paths;
    axWindowsMediaPlayer1.Ctlcontrols.play();
    // axWindowsMediaPlayer1.Ctlcontrols.stop();
    }
    怎么改动呢?要用播放列表吗?在我这代码上面怎么改动,谢谢!!!
      

  7.   

    楼上的我不太懂你说的,我现在就是根据用户定义的时间来播放的,只是为什么循环读出每一个路径path却只播放第一个视频?
      

  8.   

    如果播放音频视频的话,用我写的类,纯c#编写
    http://www.jz322.com/web/MediaEE_SDK.rar
    http://www.jz322.com/web/Media.txt
    自己下去吧,你要的功能可以实现
      

  9.   

    zoujiaming(笨笨的!) ,我已经下了,而且还发了邮件问你,但是你的只是播放的基本功能,没有控制时间的啊?
      

  10.   

    奇怪,为什么我的播放列表不能循环播放的?for(int i=0;i<listBox1.Items.Count;i++)
    {
    playlist[i]=listBox1.Items[i].ToString();
    string pl=playlist[i];
    axWindowsMediaPlayer1.URL=pl;
    axWindowsMediaPlayer1.Ctlcontrols.play(); }
      

  11.   

    嗯,这个肯定的,但是现在问题是没有连续播放啊,只是播放第一个就停止了,是不是还要写什么代码?或者在我代码上面把全部url添加到列表上面怎么写?