网络电视精灵(新手练习,如果有不好的地方,请各位多多指导指导小弟。)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络电视精灵(新手练习,如果有不好的地方,请各位多多指导指导小弟。)相关的知识,希望对你有一定的参考价值。
电视精灵效果展示:
1.电视台和节目信息从xml文件中解析并绑定;
2.实现点击频道节点时显示有关该频道的节目信息;
好了,废话不多说。大家请看效果演示,如有不好之处,请多多指教一下,毕竟我还是个新手。
01.第一张效果图。
02.第二张效果图。
03.第三张效果图。
04.第四张效果图北京电视台,然而截屏软件不行效果不太好。
05.第五张效果图,然而截屏软件不行效果不太好。
好了,效果图放完了,下面我们来看看代码吧。你们是不是很期待?
1.频道类:
namespace Day08网络电视精灵 { /// <summary> /// 频道父类 /// </summary> public abstract class ChannelBase { //频道类型 public string ChannelType { get; set; } //channelName public string ChannelName { get; set; } //path public string Path { get; set; } //节目列表 private List<TvProgram> ProgramList = new List<TvProgram>(); public List<TvProgram> ProgramList1 { get { return ProgramList; } set { ProgramList = value; } } public abstract void Jx(); } }
2.节目类:
namespace Day08网络电视精灵 { /// <summary> /// 电视节目类 /// </summary> public class TvProgram { //节目名称 public string ProgramName { get; set; } //时段 public string Meridien { get; set; } //节目路径 public string Path { get; set; } //时间 public DateTime PlayTime { get; set; } } }
3.工厂类:
namespace Day08网络电视精灵 { public class Factory { //创建一个工厂类 public static ChannelBase CB(string type) { ChannelBase types = null; switch(type) { case"TypeA": types = new TypeA(); break; case"TypeB": types = new TypeB(); break; } return types; } } }
4.管理类:
namespace Day08网络电视精灵 { /// <summary> /// 频道管理类 /// </summary> public class ChannelManager { private List<ChannelBase> list = new List<ChannelBase>(); public List<ChannelBase> List { get { return list; } set { list = value; } } public void ResolveChannels() { //1.1 我将解析好的Data中转存放到泛型集合 //List<自定义类> XmlDocument doc = new XmlDocument(); doc.Load("files/FullChannels.xml"); //找根节点 () XmlNode root=doc.DocumentElement; foreach (XmlNode item in root.ChildNodes) { //一个item代表什么 Channel ChannelBase channel = Factory.CB(item["channelType"].InnerText); channel.ChannelType = item["channelType"].InnerText; channel.ChannelName = item["tvChannel"].InnerText; channel.Path = item["path"].InnerText; //归属到一个集合中 list.Add(channel); } } } }
5.北京电视台类:
namespace Day08网络电视精灵 { public class TypeA:ChannelBase { public override void Jx() { XmlDocument doc = new XmlDocument(); doc.Load("files/北京电视台.xml"); XmlNode root = doc.DocumentElement; foreach (XmlNode item in root.ChildNodes) { if (item.Name.Equals("tvProgramTable")) { foreach (XmlNode item2 in item.ChildNodes) { TvProgram Tp = new TvProgram(); Tp.PlayTime = Convert.ToDateTime(item2["playTime"].InnerText); Tp.Meridien = item2["meridien"].InnerText; Tp.Path = item2["path"].InnerText; Tp.ProgramName = item2["programName"].InnerText; ProgramList1.Add(Tp); } } } } } }
6.凤凰卫视:
namespace Day08网络电视精灵 { public class TypeB : ChannelBase { public override void Jx() { XmlDocument doc = new XmlDocument(); doc.Load("files/凤凰卫视.xml"); XmlNode root = doc.DocumentElement; foreach (XmlNode item in root.ChildNodes) { if (item.Name.Equals("ProgramList")) { foreach (XmlNode item2 in item.ChildNodes) { TvProgram Tp = new TvProgram(); Tp.PlayTime = Convert.ToDateTime(item2["playTime"].InnerText); Tp.Path = item2["path"].InnerText; Tp.ProgramName = item2["name"].InnerText; ProgramList1.Add(Tp); } } } } }
7.程序入口:
namespace Day08网络电视精灵 { static class Program { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new FrmMain()); } } }
好了!没有了。如果各位在看的当中发现小弟有不知之处,请提出来,这样小弟可以及时更改学习。
还有注释写的也不是太完美,反正多多包涵吧!
勿喷!!!!!!!
以上是关于网络电视精灵(新手练习,如果有不好的地方,请各位多多指导指导小弟。)的主要内容,如果未能解决你的问题,请参考以下文章