zoukankan      html  css  js  c++  java
  • 网络电视精灵

            

     搭建窗体

     相关代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 网络电视精灵
    {
        //频道父类
        public abstract  class ChannelBase
        {
            public string  ChannelName { get; set; }//频道名称
    
            public string  Path { get; set; }//频道路径
    
            public string  Type { get; set; }//频道类型
    
            public List <TvProgram> Tvlist { get; set; }//该频道上所有节目列表
    
            public abstract void Fatch();//通过Fatch方法获取该频道上所有节目列表
    
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Xml;
    
    namespace 网络电视精灵
    {
        //频道管理类
        public  class ChannelManager
        {
            //创建一个频道集合
            public List<ChannelBase> list = new List<ChannelBase>();
    
    
           //解析FullChannel.xml文件
            public void LoadChannel()
            {
                XmlDocument doc = new XmlDocument();
                doc.Load("files/FullChannels.xml");
                XmlNode root = doc.DocumentElement;
    
                foreach (XmlNode  item in root.ChildNodes )
                {
                    //获取频道的类型
                    string type= item ["channelType"].InnerText ;
    
                    //一个item就是一个频道对象
                    ChannelBase channel = ChannelFactory.GetInstance(type);
    
                    //频道名称
                    channel.ChannelName = item["tvChannel"].InnerText;
                    //频道类型
                    channel.Type = type;
                    //路径
                    channel .Path =item ["path"].InnerText ;
                    //放到集合中
                    list.Add(channel);
                }
    
            }
        }
    }

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 网络电视精灵
    {
        //频道工场
        public  class ChannelFactory
        {
            public static ChannelBase GetInstance(string type)
            {
                ChannelBase channel = null;
    
                switch (type)
                {
                    case "TypeA":
                        channel = new TypeAChannel();
                        break;
                    case "TypeB":
                        channel = new TypeBChannel();
                        break;
                    default:
                        break;
                }
                return channel;
            }
    
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace 网络电视精灵
    {
        //节目单类
        public  class TvProgram
        {
            public DateTime PlayTime { get; set; }//播出时间
    
            public string  ShiDuan { get; set; }//早间段,午间段,晚间段
    
            public string  Name { get; set; }//节目名称
    
            public string  Path { get; set; }//视频路径
    
    
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Xml;
    
    namespace 网络电视精灵
    {
        //北京电视台类
        public  class TypeAChannel:ChannelBase 
        {
    
            public override void Fatch()
            {
                //先判断集合是否为空
                if (Tvlist ==null )
                {
                    //如果为空要先占好空间
                    Tvlist = new List<TvProgram>();
                }
    
                //解析北京电视台下的所有节目名单
                XmlDocument doc = new XmlDocument();
                doc.Load(Path);
                //根节点
                XmlNode root = doc.DocumentElement;
                //遍历
                foreach (XmlNode  item in root .ChildNodes )
                {
                    //一个item就是一个子节点  就是一个tvProgranTable或者是一个channelName
                    if (item .Name =="tvProgramTable")
                    {
                        foreach (XmlNode  child in item .ChildNodes )
                        {
                             TvProgram tv = new TvProgram();
                             tv.Name = child["programName"].InnerText;
                             tv.Path = child["path"].InnerText;
                             tv.PlayTime =Convert .ToDateTime ( child["playTime"].InnerText);
                             tv.ShiDuan = child["meridien"].InnerText;
                             //绑定到集合中
                             Tvlist.Add(tv);
                        }
                    }
                    
    
                }
    
    
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Xml;
    
    namespace 网络电视精灵
    {
        //凤凰卫视
        public  class TypeBChannel:ChannelBase 
        {
    
            public override void Fatch()
            {
                //先判断集合是否为空
                if (Tvlist ==null )
                {
                    //如果为空要先占好空间
                    Tvlist = new List<TvProgram>();
                }
    
                ////解析凤凰电视台下的所有节目名单
                XmlDocument doc = new XmlDocument();
                doc.Load(Path);
                //根节点
                XmlNode root = doc.DocumentElement;
                //遍历
                foreach (XmlNode  item in root .ChildNodes )
                {
                    //一个item就是一个programlist
                    foreach (XmlNode  child in item .ChildNodes )
                    {
                        //一个child就是一个Program对象
                        TvProgram tv = new TvProgram();
                        tv.Name = child["name"].InnerText;
                        tv.Path = child["path"].InnerText;
                        tv.PlayTime = Convert.ToDateTime(child ["playTime"].InnerText);
                        //绑定到集合中
                        Tvlist.Add(tv);
                    }
    
                }
    
    
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace 网络电视精灵
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            //主窗体
            private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
            {
    
            }
    
            TreeNode no = new TreeNode("我的电视台");
            private void Form1_Load(object sender, EventArgs e)
            {
                
                tvlist.Nodes.Add(no);
    
                //创建一个所有电台  根节点
                TreeNode root = new TreeNode("所有电视台");
                tvlist.Nodes.Add(root);
    
                //使用管理类的方法给list填充数据
                ChannelManager channel = new ChannelManager();
                channel.LoadChannel();
                List <ChannelBase> list= channel.list;
    
                foreach (ChannelBase  item in list )
                {
                   
                    //MessageBox.Show(item .ChannelName );
    
                    //每个item是一个频道对象
                    //绑定到Treeview的 所有电台 的子节点中
                    TreeNode tn = new TreeNode(item .ChannelName);
                    tn.Tag=item;
    
                    root.Nodes.Add(tn);
    
                }
    
            }
    
            private void tvlist_AfterSelect(object sender, TreeViewEventArgs e)
            {
                //选择性显示右键快捷菜单
                if (tvlist.SelectedNode .Level ==0)
                {
                    cms2.Items[0].Visible = false;
                    cms2.Items[1].Visible = false;
                }
                else if(tvlist .SelectedNode.Parent .Text =="所有电视台")
                {
                    cms2.Items[0].Visible = true;
                    cms2.Items[1].Visible = false;
                }
                else if (tvlist .SelectedNode.Parent .Text =="我的电视台")
                {
                    cms2.Items[0].Visible = false;
                    cms2.Items[1].Visible = true;
                }
    
              
                //获取选中的节点对象
                TreeNode tn = tvlist.SelectedNode;
                //当选中的节点深度从1开始
                if (tn.Level ==1)
                {
                    ChannelBase cb = (ChannelBase)tn.Tag;
                    //清空TvList中的数据
                    if (cb.Tvlist !=null )
                    {
                        cb.Tvlist.Clear();
                    }
    
                    //null是不能调用他的任何属性和方法的
                    cb.Fatch();
                    //绑定到DataGridView控件中
                    List <TvProgram> list=cb.Tvlist;
                    dgvlist.DataSource = list;
                }
    
               
            }
    
            private void dgvlist_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
    
            }
    
            //播放
            private void 播放ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                Form2 f = new Form2();
                f.playPath =dgvlist .SelectedRows [0].Cells ["path"].Value .ToString ();
                f.Show();
    
    
            }
    
            //添加到我的电视台
            private void 加入我的电视台ToolStripMenuItem_Click(object sender, EventArgs e)
            {
                
                //获取选中节点
                TreeNode tn = tvlist.SelectedNode;
                TreeNode one = new TreeNode(tn.Text);
                //添加到  我的电视台  中
                one.Tag = tn.Tag;
                no.Nodes.Add(one);
            }
    
            //删除我的电视台中的频道
            private void 删除ToolStripMenuItem1_Click(object sender, EventArgs e)
            {
                TreeNode tn = tvlist.SelectedNode;
                tn.Remove();         
            }
        }
    }
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace 网络电视精灵
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }
            //播放窗体
            public string playPath;
    
            private void Form2_Load(object sender, EventArgs e)
            {
                //获得播放路径
                Player1.URL = playPath;
            }
        }
    }

     凤凰电视台

    <?xml version="1.0" encoding="utf-8" ?>
    <typeB version =" 1.0">
        <ProgramList>
            <Program>
                <playTime>2009-9-29 01:30</playTime>  <!--播出时间-->
            
                <name>简单工厂模式</name>          <!--节目名称-->
                <path>D:简单工厂模式.wmv</path>          <!--节目视频的本地路径-->
            </Program>
            <Program>
                <playTime>2009-9-29 02:10</playTime>  <!--播出时间-->
            
                <name>非凡人物论成功(713)</name>          <!--节目名称-->
                <path>**</path>          <!--节目视频的本地路径-->
            </Program>
            <Program>
                <playTime>2009-9-29 02:15</playTime>  <!--播出时间-->
            
                <name>有报天天读(28/09/09) </name>          <!--节目名称-->
                <path>**</path>          <!--节目视频的本地路径-->
            </Program>
            <Program>
                <playTime>2009-9-29 02:40</playTime>  <!--播出时间-->
            
                <name>娱乐大风暴(682) </name>          <!--节目名称-->
                <path>**</path>          <!--节目视频的本地路径-->
            </Program>
            <Program>
                <playTime>2009-9-29 03:15</playTime>  <!--播出时间-->
            
                <name>上海新长宁集团特约之2009中华小姐环球大赛-美丽前奏(41) </name>          <!--节目名称-->
                <path>**</path>          <!--节目视频的本地路径-->
            </Program>
            <Program>
                <playTime>2009-9-29 03:20</playTime>  <!--播出时间-->
            
                <name>完全时尚手册:天桥云裳(632)  </name>          <!--节目名称-->
                <path>**</path>          <!--节目视频的本地路径-->
            </Program>
            <Program>
                <playTime>2009-9-29 03:40</playTime>  <!--播出时间-->
            
                <name>东风康明斯凤凰冲击播:天力士特约之今日看世界(39)  </name>          <!--节目名称-->
                <path>**</path>          <!--节目视频的本地路径-->
            </Program>
            <Program>
                <playTime>2009-9-29 04:25</playTime>  <!--播出时间-->
            
                <name>音乐中国风(442)  </name>          <!--节目名称-->
                <path>**</path>          <!--节目视频的本地路径-->
            </Program>
            <Program>
                <playTime>2009-9-29 04:35</playTime>  <!--播出时间-->
            
                <name>维维健康新概念(193) </name>          <!--节目名称-->
                <path>**</path>          <!--节目视频的本地路径-->
            </Program>
            <Program>
                <playTime>2009-9-29 04:40</playTime>  <!--播出时间-->
            
                <name>红牛凤凰全球连线(28/09/09) </name>          <!--节目名称-->
                <path>**</path>          <!--节目视频的本地路径-->
            </Program>
            <Program>
                <playTime>2009-9-29 05:05</playTime>  <!--播出时间-->
            
                <name>红云红河时事开讲(28/09/09)  </name>          <!--节目名称-->
                <path>**</path>          <!--节目视频的本地路径-->
            </Program>
            <Program>
                <playTime>2009-9-29 05:30</playTime>  <!--播出时间-->
            
                <name>别巡检调查队(34)(R) </name>          <!--节目名称-->
                <path>**</path>          <!--节目视频的本地路径-->
            </Program>
        </ProgramList>
    </typeB>

    北京电视台

    <?xml version="1.0" encoding="utf-8" ?>
    <typeA version =" 1.0">
        <channelName>北京电视台</channelName>
        <tvProgramTable>
            <tvProgram>
                <playTime>2009-9-29 06:02</playTime> <!--节目播出时间-->
                <meridien>早间档</meridien> <!--时段-->
                   
                <programName>麦田守望者 - 在路上</programName> <!--节目名称-->
                <path>D:Music麦田守望者 - 在路上 [mqms2].mp3</path>         <!--视频路径-->
            </tvProgram>
    <tvProgram>
                <playTime>2009-9-29 07:00</playTime> <!--节目播出时间-->
                <meridien>早间档</meridien> <!--时段-->
                   
                <programName>北京您早</programName> <!--节目名称-->
                <path>C:New Stories (Highway Blues).wma</path>         <!--视频路径-->
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 09:02</playTime> <!--节目播出时间-->
                <meridien>早间档</meridien> <!--时段-->
                   
                <programName>重播《红星剧场》32集剧:勇者无敌(31)</programName> <!--节目名称-->
                <path>**</path>         <!--视频路径-->
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 09:58</playTime>
                
                <meridien>早间档</meridien>
                <programName>重播《红星剧场》32集剧:勇者无敌(32)</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 11:15</playTime>
                
                <meridien>午间档</meridien>
                <programName>重播:专题片:我爱你,中国(14)</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 11:58</playTime>
                
                <meridien>午间档</meridien>
                <programName>身边</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 12:30</playTime>
                
                <meridien>午间档</meridien>
                <programName>特别关注</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 13:05</playTime>
                
                <meridien>午间档</meridien>
                <programName>天下天天谈</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 13:40</playTime>
                
                <meridien>午间档</meridien>
                <programName>《玫瑰剧场》55集剧:闯关东中篇(21)</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 14:32</playTime>
                
                <meridien>午间档</meridien>
                <programName>《玫瑰剧场》55集剧:闯关东中篇(22)</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 15:27</playTime>
                
                <meridien>下午档</meridien>
                <programName>《玫瑰剧场》55集剧:闯关东中篇(23)</programName>
                <path>D:\video\心灵之约.mp4</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 16:19</playTime>
                
                <meridien>下午档</meridien>
                <programName>《玫瑰剧场》55集剧:闯关东中篇(24)</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 17:31</playTime>
                
                <meridien>下午档</meridien>
                <programName>法治进行时</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 18:00</playTime>
                
                <meridien>晚间档</meridien>
                <programName>新闻晚高峰</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 18:30</playTime>
                
                <meridien>晚间档</meridien>
                <programName>北京新闻</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 18:56</playTime>
                
                <meridien>晚间档</meridien>
                <programName>天气预报</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 19:00</playTime>
                
                <meridien>晚间档</meridien>
                <programName>转播CCTV新闻联播</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 19:31</playTime>
                
                <meridien>晚间档</meridien>
                <programName>看气象</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 19:40</playTime>
                
                <meridien>晚间档</meridien>
                <programName>专题片:我爱你,中国(15)</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 20:22</playTime>
                
                <meridien>晚间档</meridien>
                <programName>《爸妈都是老党员》首播庆典</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 21:21</playTime>
                
                <meridien>晚间档</meridien>
                <programName>《红星剧场》38集剧:咱爸咱妈六十年(1)</programName>
                <path>**</path>
            </tvProgram>
            <tvProgram>
                <playTime>2009-9-29 23:25</playTime>
                
                <meridien>晚间档</meridien>
                <programName>重播文艺:花样年华歌舞大赛(5)</programName>
                <path>**</path>
            </tvProgram>
        </tvProgramTable>
    </typeA>
    <?xml version="1.0" encoding="utf-8" ?>
    <TVChannels>
        <Channel>
            <channelType>TypeA</channelType> <!--频道类型-->
            <tvChannel>北京电视台</tvChannel> <!--频道名称-->
            <path>files/北京电视台.xml</path>           <!--频道对应XML文件的本地路径-->
        </Channel>
        <Channel>
            <channelType>TypeB</channelType>
            <tvChannel>凤凰卫视</tvChannel>
            <path>files/凤凰卫视.xml</path>
        </Channel>
    </TVChannels>
        
  • 相关阅读:
    04_特征工程
    03_特征清洗
    02_数据探索
    01_简介
    cache是什么文件?
    gulp详细入门教程
    HTML5实战与剖析之触摸事件(touchstart、touchmove和touchend)
    h4和h5的区别
    弹性盒布局
    js面向对象
  • 原文地址:https://www.cnblogs.com/ckwblogs/p/5846393.html
Copyright © 2011-2022 走看看