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>
        
  • 相关阅读:
    jvisualm 结合 visualGC 进行jvm监控,并分析垃圾回收
    linux 查看服务器cpu 与内存配置
    arthas 使用总结
    selinux contexts 安全上下文的临时更改
    Android 8.1 Doze模式分析(五) Doze白名单及Debug方式
    Window 任意窗口置顶软件Window TopMost Control
    Android ApkToolPlus一个可视化的跨平台 apk 分析工具
    SVN Please execute the 'Cleanup' command.
    Android 如何在64位安卓系统中使用32位SO库
    Android cmd命令查看apk是32位还是64位?
  • 原文地址:https://www.cnblogs.com/ckwblogs/p/5846393.html
Copyright © 2011-2022 走看看