/// <summary>
 /// 把传递过来的项移动到最后一项
 /// </summary>
 /// <param name="videoItem"></param>
 private void MoveVideo(PlaylistItemInfo videoItem)
 {
     //修改当前项播放的时间
     videoItem.StartTime = videoItem.StartTime.AddSeconds(playListTimeLength);
     //加到结尾
     plists.Add(videoItem);
     //移除第一项
     plists.RemoveAt(0);
 }
 /// <summary>
 /// 重新排列当前播放列表
 /// </summary>
 private void RearrangePlayList()
 {
     PlayListHandleEvent(this, "播放列表排列");
     if (plists.Count == 1)
     {
         PlaylistItemInfo item = new PlaylistItemInfo();
         item.MD5Key        = plists[0].MD5Key;
         item.MediaFileName = plists[0].MediaFileName;
         item.PlayTime      = plists[0].PlayTime;
     }
     plists[0].StartTime = DateTime.Now;
     for (int i = 1; i < plists.Count; i++)
     {
         plists[i].StartTime = plists[i - 1].StartTime.AddSeconds(plists[i - 1].PlayTime);
     }
 }
        /// <summary>
        /// 从本地载入播放列表
        /// </summary>
        public bool LoadPlayList()
        {
            try
            {
                string xmlDocPath = PlayerSetting.DefaultVideosPath + "PlayList.xml";
                if (System.IO.File.Exists(xmlDocPath))
                {
                    XmlDocument xmlDoc = new XmlDocument();
                    xmlDoc.Load(xmlDocPath);
                    PlaylistInfo plm = PlaylistInfo.ToModel(xmlDoc.OuterXml);
                    //播放列表赋值
                    plists = plm.MediaPlayList;
                    //计算整个播放列表播放时间的间隔加上循环间隔时长
                    playListTimeLength = 0;
                    //foreach (PlaylistItemInfo item in plists)
                    //{

                    //    playListTimeLength += item.PlayTime;
                    //}
                    for (int i = 0; i < plists.Count; i++)
                    {
                        string relativurl = plists[i].MediaFileName;
                        string path       = PlayerSetting.DefaultVideosPath + relativurl;
                        string md5Value   = plists[i].MD5Key;
                        if (!string.IsNullOrEmpty(md5Value))
                        {
                            string MediaMd5 = SeatManage.SeatManageComm.SeatComm.GetMD5HashFromFile(path);
                            if (MediaMd5.Equals(md5Value))
                            {
                                playListTimeLength += plists[i].PlayTime;
                            }
                            else
                            {
                                PlayListHandleEvent(this, string.Format("文件{0} MD5校验失败!", relativurl));
                                plists.RemoveAt(i);
                                i--;
                            }
                        }
                    }
                    //TODO:根据当前时间重新排列播放列表
                    RearrangePlayList();
                    return(true);
                }
                else if (!string.IsNullOrEmpty((PlayerSetting.DefaultVideo)))
                {
                    string[] fileNames = PlayerSetting.DefaultVideo.Split(';');
                    plists = new List <PlaylistItemInfo>();
                    foreach (string name in fileNames)
                    {
                        if (string.IsNullOrEmpty(name))
                        {
                            continue;
                        }
                        PlaylistItemInfo item = new PlaylistItemInfo();
                        item.MD5Key        = SeatManage.SeatManageComm.SeatComm.GetMD5HashFromFile(string.Format("{0}{1}", PlayerSetting.DefaultVideosPath, name));
                        item.MediaFileName = name;
                        item.PlayTime      = 30;
                        plists.Add(item);
                        playListTimeLength += 30;
                    }
                    if (plists.Count < 1)
                    {
                        SeatManage.SeatManageComm.WriteLog.Write("播放列表不存在");
                        PlayListHandleEvent(this, "本地播放列表不存在!");
                        return(false);
                    }
                    RearrangePlayList();
                    return(true);
                }
                else
                {
                    SeatManage.SeatManageComm.WriteLog.Write("播放列表不存在");
                    PlayListHandleEvent(this, "本地播放列表不存在!");
                    return(false);
                }
            }
            catch
            {
                SeatManage.SeatManageComm.WriteLog.Write("载入播放列表失败");
                PlayListHandleEvent(this, "载入播放列表失败!");
                return(false);
            }
        }