public void GetTimeLong(object source, System.Timers.ElapsedEventArgs e) { for (int i = 0; i < uPlayers.Count; i++) { VLCLib.UPlayer player = (VLCLib.UPlayer)uPlayers[i]; Console.WriteLine(i + "播放时长为:" + player.vlcPlayer.GetPlayTime()); if (player.vlcPlayer.GetPlayTime() == 0) { rePlay(i); Thread.Sleep(1000); } } }
void rePlay(int i) { if (this.InvokeRequired) { this.Invoke(new MethodInvoker(delegate { rePlay(i); })); return; } VLCLib.UPlayer player = (VLCLib.UPlayer)uPlayers[i]; player.Stop(); player.Dispose(); string playerName = player.Name; int crameraIndex = int.Parse(playerName.Split('&')[0]); int panelIndex = int.Parse(playerName.Split('&')[1]); this.main_panel.Controls.Remove(videoPanels[panelIndex]); Panel panel = CreatePanel(rectangles[panelIndex]); string reUrl = cameraList[crameraIndex].CarmerUrl; panel.Name = "videoPanel" + i; //panel.BackColor = Color.Red; panel.MouseDoubleClick += msDoubleClick; this.main_panel.Controls.Add(panel); VLCLib.UPlayer playerNew = new VLCLib.UPlayer(); panel.Controls.Add(playerNew); playerNew.Play(reUrl, panel.Handle); playerNew.Name = playerName; System.Windows.Forms.Panel panelDoubleClick = new System.Windows.Forms.Panel(); panelDoubleClick.Dock = DockStyle.Fill; panelDoubleClick.BackColor = Color.Transparent; panelDoubleClick.MouseDoubleClick += msDoubleClick; panel.Controls.Clear(); panel.Controls.Add(panelDoubleClick); panelDoubleClick.BringToFront(); uPlayers[i] = playerNew; videoPanels[panelIndex] = panel; }
private void reDrawPanels() { disposeAllPlayer(); uPlayers.Clear(); this.main_panel.Controls.Clear(); videoPanels.Clear(); /*IList<Rectangle> rectangles = new IList<Rectangle>();*/ if (channels == 1) { Rectangle rectangle = new Rectangle(); rectangle.Size = this.main_panel.Size; rectangle.Location = new Point(0); Panel panel = CreatePanel(rectangle); videoPanels.Add(panel); panel.MouseDoubleClick += msDoubleClick; if (cameraList.Count > 0) { VLCLib.UPlayer player = new VLCLib.UPlayer(); player.Play(cameraList[0].CarmerUrl, panel.Handle); player.Name = "0"; player.Enabled = false; panel.Controls.Add(player); uPlayers.Add(player); } this.main_panel.Controls.Add(panel); return; } //计算面板坐标 rectangles = CalcPanelRectangle(this.channels, this.main_panel.Size); //创建面板 for (int i = 0; i < this.channels; i++) { Panel panel = CreatePanel(rectangles[i]); videoPanels.Add(panel); this.main_panel.Controls.Add(panel); panel.Name = "videoPanel" + i; panel.MouseDoubleClick += msDoubleClick; if (i < cameraList.Count) { VLCLib.UPlayer player = new VLCLib.UPlayer(); if (player.Inited) { player.Init(); } player.Play(cameraList[i].CarmerUrl, panel.Handle); player.Name = i.ToString() + "&" + i; System.Windows.Forms.Panel panelDoubleClick = new System.Windows.Forms.Panel(); panelDoubleClick.Dock = DockStyle.Fill; panelDoubleClick.BackColor = Color.Transparent; panelDoubleClick.MouseDoubleClick += msDoubleClick; panel.Controls.Add(player); panel.Controls.Clear(); panel.Controls.Add(panelDoubleClick); panelDoubleClick.BringToFront(); uPlayers.Add(player); } //playIndex = i; } }