Beispiel #1
0
        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);
                }
            }
        }
Beispiel #2
0
        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;
        }
Beispiel #3
0
        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;
            }
        }