コード例 #1
0
        // s双视频流 红外+普通


        public MultiCam CreateCameraStream(string name, string ip, StreamType stype)
        {
            MultiCam mc     = new MultiCam();
            var      ir     = GetCamStream(stype);
            var      normal = GetCamStream(stype);

            if (ir == null || normal == null)
            {
                return(null);
            }

            // 生成ir流实例
            ir.SetMode(CamMode.IR);
            ir.SetName(name);
            ir.SetPath(ip);
            ir.SetIP(ip);
            // 生成普通流实例
            normal.SetMode(CamMode.IR);
            normal.SetName(name);
            normal.SetPath(ip);
            normal.SetIP(ip);

            mc.Add(CamMode.IR, ir);
            mc.Add(CamMode.NORMAL, normal);

            cl.Add(mc);

            return(mc);
        }
コード例 #2
0
        public void SetCamStream(MultiCam mc)
        {
            runCheck = true;

            normalTimer     = new Thread(normal_Tick);
            irTimer         = new Thread(ir_Tick);
            normalTRun      = true;
            irTRun          = true;
            normalNeedReset = 0;
            irNeedReset     = 0;

            foreach (var item in mc)
            {
                // 工厂的接口转成控件
                var vc = item.Value as VlcCamera;
                multiPlayer.Add(item.Key, vc);
                //if (item.Key == CamMode.IR)

                RePlayMedia(item.Key, "");
                ip = vc.GetIP();

                // 生成ping线程
                if (item.Key == CamMode.IR)
                {
                    //Thread t = new Thread(CheckConnection);
                    //t.Start(vc.GetIP());
                }
                vc.vlcPlayer.Height = this.Height;
                v1.Height           = this.Height;
                v2.Height           = this.Height;
                vc.vlcPlayer.HorizontalAlignment = HorizontalAlignment.Stretch;
                vc.vlcPlayer.VerticalAlignment   = VerticalAlignment.Stretch;
                var viewBox = vc.vlcPlayer.Content as Viewbox;
                viewBox.Stretch = System.Windows.Media.Stretch.Fill;
            }

            //aTimer.Start();

            //(mc[CamMode.IR] as VlcCamera).vlcPlayer.SetValue(Grid.ColumnProperty, 1);
            //(mc[CamMode.NORMAL] as VlcCamera).vlcPlayer.SetValue(Grid.ColumnProperty, 0);

            this.v1.Children.Add((mc[CamMode.IR] as VlcCamera).vlcPlayer);
            this.v2.Children.Add((mc[CamMode.NORMAL] as VlcCamera).vlcPlayer);
            //v1.Width = this.Width / 2;
            //v2.Width = this.Width / 2;
        }