コード例 #1
0
ファイル: Form1.cs プロジェクト: liuslayer/RCCP
        public Form1()
        {
            InitializeComponent();
            SetClassLong(this.Handle, GCL_STYLE, GetClassLong(this.Handle, GCL_STYLE) | CS_DropSHADOW);
            int i = CMSSdk.VM_CMS_Init();

            if (i < 0)
            {
                MessageBox.Show("流媒体初始化失败!");
            }
            else
            {
                CMSSdk.LPCMS_USER_LOGIN_INFO LoginInfo = new CMSSdk.LPCMS_USER_LOGIN_INFO();
                LoginInfo.szIP       = "192.0.0.66";
                LoginInfo.uPort      = 8000;
                LoginInfo.szUser     = "******";
                LoginInfo.szPassword = "******";
                lHandle = CMSSdk.VM_CMS_Login(ref LoginInfo, 0);
                if (lHandle < 0)
                {
                    MessageBox.Show("媒体管理服务器登录失败!");
                }
                else
                {
                    MessageBox.Show("媒体管理服务器登录成功!");
                }
            }
        }
コード例 #2
0
 private void 关闭预览ToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (System.Configuration.ConfigurationManager.AppSettings["MediaStream"] == "1")
     {
         if (CMSSdk.VM_CMS_StopPlay(hwnd[selectedIndex]) == -1)
         {
             MessageBox.Show("关闭失败!");
             return;
         }
         DeviceIDs[selectedIndex] = null;
         hwnd[selectedIndex]      = -1;
         SID[selectedIndex]       = null;
         videoboxs[selectedIndex].Refresh();
         videoboxs[selectedIndex].ClearVideoInfo();
     }
     else
     {
         if (!PreviewDemo.CHCNetSDK.NET_DVR_StopRealPlay(hwnd[selectedIndex]))
         {
             MessageBox.Show("关闭失败!");
         }
         else
         {
             DeviceIDs[selectedIndex] = null;
             hwnd[selectedIndex]      = -1;
             videoboxs[selectedIndex].Refresh();
             videoboxs[selectedIndex].ClearVideoInfo();
         }
     }
 }
コード例 #3
0
 //查询录像文件
 private void button8_Click(object sender, EventArgs e)
 {
     //通过时间查询录像文件、
     call = CallbackCAMFile;
     string startTime = dateTimePicker1.Value.ToString("yyyyMMdd") + dateTimePicker2.Value.ToString("HHmmss");
     string endTime   = dateTimePicker3.Value.ToString("yyyyMMdd") + dateTimePicker4.Value.ToString("HHmmss");
     int    i         = CMSSdk.VM_CMS_FindFileTime(0, szSID, startTime, endTime, call, 0);
 }
コード例 #4
0
ファイル: Form3.cs プロジェクト: liuslayer/RCCP
 //查询
 private void button3_Click(object sender, EventArgs e)
 {
     //通过时间查询录像文件、
     call = CallbackCAMFile;
     string startTime = monthCalendar1.SelectionStart.ToString("yyyyMMdd") + "000000";
     string endTime   = monthCalendar1.SelectionStart.ToString("yyyyMMdd") + "235959";
     int    i         = CMSSdk.VM_CMS_FindFileTime(0, szSID, startTime, endTime, call, 0);
 }
コード例 #5
0
ファイル: Form1.cs プロジェクト: liuslayer/RCCP
 //打开预览
 private void button1_Click_1(object sender, EventArgs e)
 {
     if (lHandle != -1)
     {
         int i = CMSSdk.VM_CMS_RealPlay(lHandle, pictureBox1.Handle, "ch1");
         if (i < 0)
         {
             MessageBox.Show("视频预览失败!");
         }
     }
 }
コード例 #6
0
        } //发送视频调阅命令

        private void button1_Click(object sender, EventArgs e)
        {
            //直接使用流媒体库播放视频
            string sid = listBox2.SelectedValue.ToString();

            returningValue1 = CMSSdk.VM_CMS_RealPlay(lHandle, pictureBox1.Handle, "ch1");
            if (returningValue1 < 0)
            {
                MessageBox.Show("预览失败!");
            }
        }
コード例 #7
0
ファイル: Form1.cs プロジェクト: liuslayer/RCCP
 //添加流媒体服务器
 private void button1_Click(object sender, EventArgs e)
 {
     CMSSdk.LPCMS_VMSR VMSInfo = new CMSSdk.LPCMS_VMSR();
     VMSInfo.szIP         = textBox1.Text;
     VMSInfo.szPort       = textBox2.Text;
     VMSInfo.szMaxChannel = textBox3.Text;
     if (CMSSdk.VM_CMS_AddVMS(lHandle, ref VMSInfo, 0) < 0)
     {
         MessageBox.Show("添加流媒体服务器失败!");
     }
     else
     {
         MessageBox.Show("添加流媒体服务器成功!");
     }
 }
コード例 #8
0
        string szSID = "ch1";        //视频标识
        public Form2()
        {
            InitializeComponent();
            #region 连接外部数据中心
            //IPAddress ExternalDataCentreService_IP = IPAddress.Parse(ConfigurationManager.AppSettings["ExternalDataCentreService_IP"]);
            //int ExternalDataCentreService_Port1 = int.Parse(ConfigurationManager.AppSettings["ExternalDataCentreService_Port1"]);
            //int ExternalDataCentreService_Port2 = int.Parse(ConfigurationManager.AppSettings["ExternalDataCentreService_Port2"]);

            //IPEndPoint ipe1 = new IPEndPoint(ExternalDataCentreService_IP, ExternalDataCentreService_Port1);
            //clientSocket1 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //clientSocket1.Connect(ipe1);
            //IPEndPoint ipe2 = new IPEndPoint(ExternalDataCentreService_IP, ExternalDataCentreService_Port2);
            //clientSocket2 = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            //clientSocket2.Connect(ipe2);
            #endregion

            #region 建立socket服务器监听外部数据中心返回值
            int        ListenPort = int.Parse(ConfigurationManager.AppSettings["ListenPort"]);
            IPAddress  ListenIP   = IPAddress.Parse(ConfigurationManager.AppSettings["ListenIP"]);
            IPEndPoint ipe        = new IPEndPoint(ListenIP, ListenPort);
            sSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            sSocket.Bind(ipe);
            sSocket.Listen(0);
            Thread th = new Thread(new ThreadStart(ReveiceData));
            th.IsBackground = true;
            th.Start();
            #endregion
            //初始化流媒体
            //returningValue1 = VMSdk.VM_CLIENT_Init();
            returningValue1 = CMSSdk.VM_CMS_Init();
            CMSSdk.LPCMS_USER_LOGIN_INFO LoginInfo = new CMSSdk.LPCMS_USER_LOGIN_INFO();
            LoginInfo.szIP       = ConfigurationManager.AppSettings["MediaStream_IP"];
            LoginInfo.uPort      = int.Parse(ConfigurationManager.AppSettings["MediaStream_Port"]);
            LoginInfo.szUser     = ConfigurationManager.AppSettings["MediaStream_User"];
            LoginInfo.szPassword = ConfigurationManager.AppSettings["MediaStream_Password"];
            lHandle = CMSSdk.VM_CMS_Login(ref LoginInfo, 0);
            if (lHandle < 0)
            {
                MessageBox.Show("媒体管理服务器登录失败!");
            }
            else
            {
                MessageBox.Show("媒体管理服务器登录成功!");
            }
        }
コード例 #9
0
ファイル: Form1.cs プロジェクト: liuslayer/RCCP
        //添加设备到流媒体服务器
        private void button4_Click(object sender, EventArgs e)
        {
            //获取摄像机RTSP地址
            HIKConfig = new CMSSdk.LPCMS_CONFIG_HIKVISION();
            HIKConfig.sDeviceAddress = "192.0.0.11";
            HIKConfig.ulPort         = 554;
            HIKConfig.sUserName      = "******";
            HIKConfig.sPassword      = "******";
            HIKConfig.lChannel       = 1;
            HIKConfig.ulStreamType   = 0;
            HIKConfig.ulLinkMode     = 0;
            HIKConfig.ulVideoEncType = 0;
            IntPtr sp = Marshal.AllocCoTaskMem(Marshal.SizeOf(typeof(CMSSdk.LPCMS_CONFIG_HIKVISION)));

            Marshal.StructureToPtr(HIKConfig, sp, true);
            int i;

            i = CMSSdk.VM_CMS_CAMToRTSP(ref HIKConfig, CMSSdk.emCMS_CAM_TYPE.CMS_CAM_HIKVISION, ref myAddress);
            if (i < 0)
            {
                MessageBox.Show("获取摄像机RTSP地址失败!");
            }
            ClassLibrary1.CMSSdk.LPCMS_CAM CAMInfo = new CMSSdk.LPCMS_CAM();

            CAMInfo.szSid  = "ch2";
            CAMInfo.szIP   = "192.0.0.11";
            CAMInfo.szPort = "554";
            CAMInfo.szRTSP = myAddress.szRtspOutput;
            CAMInfo.szMark = "hikvision";
            //CAMInfo.szState = "";

            //byte[] test= serializeInfoObjToByteArray(CAMInfo);
            i = CMSSdk.VM_CMS_AddCAM(lHandle, ref CAMInfo, 0);
            if (i < 0)
            {
                MessageBox.Show("添加摄像机失败!");
            }
            else
            {
                MessageBox.Show("添加摄像机成功!");
            }
        }
コード例 #10
0
        private void LoginMediaServer()
        {
            //单独启动该窗体时需要初始化、登录媒体服务器
            int i = CMSSdk.VM_CMS_Init();

            if (i < 0)
            {
                MessageBox.Show("媒体管理器初始化失败!");
                return;
            }
            CMSSdk.LPCMS_USER_LOGIN_INFO LoginInfo = new CMSSdk.LPCMS_USER_LOGIN_INFO();
            LoginInfo.szIP       = "192.0.0.66";
            LoginInfo.uPort      = 8000;
            LoginInfo.szUser     = "******";
            LoginInfo.szPassword = "******";
            lRet = CMSSdk.VM_CMS_Login(ref LoginInfo, 0);
            if (lRet < 0)
            {
                MessageBox.Show("媒体管理器登录失败!");
                return;
            }
        }
コード例 #11
0
ファイル: Form1.cs プロジェクト: liuslayer/RCCP
 //关闭预览
 private void button2_Click_1(object sender, EventArgs e)
 {
     CMSSdk.VM_CMS_StopPlay(lHandle);
 }
コード例 #12
0
        private static void Init()
        {
            //绑定服务状态事件
            CommunicationClass.ServiceStatusEvent += CommunicationClass_ServiceStatusEvent;
            //1、初始化通信类
            bool result1 = CommunicationClass.Init();

            if (result1)
            {
                ShowResult("通讯初始化成功!");
                //初始化设备数据
                Class1 class1 = new Class1();
                class1.Init();
                if (Class1.IsDone)
                {
                    NetPing.StateCallback();//状态实时信息
                }
                //报警预案数据初始化
                //ClassPlan classplan = new ClassPlan();
                //classplan.PlanInit();
            }
            else
            {
                ShowResult("通讯初始化失败!");
            }



            //2、流媒体初始化
            //先判断流媒体是否启用
            if (System.Configuration.ConfigurationManager.AppSettings["MediaStream"] == "1")
            {
                int result5 = CMSSdk.VM_CMS_Init();
                if (result5 != -1)
                {
                    ShowResult("流媒体初始化成功!");
                }
                else
                {
                    ShowResult("流媒体初始化失败!");
                }
                CMSSdk.LPCMS_USER_LOGIN_INFO LoginInfo = new CMSSdk.LPCMS_USER_LOGIN_INFO();
                LoginInfo.szIP       = System.Configuration.ConfigurationManager.AppSettings["MediaStream_IP"];
                LoginInfo.uPort      = int.Parse(System.Configuration.ConfigurationManager.AppSettings["MediaStream_Port"]);
                LoginInfo.szUser     = System.Configuration.ConfigurationManager.AppSettings["MediaStream_User"];
                LoginInfo.szPassword = System.Configuration.ConfigurationManager.AppSettings["MediaStream_Password"];
                form1.lHandle        = CMSSdk.VM_CMS_Login(ref LoginInfo, 0);
                if (form1.lHandle < 0)
                {
                    MessageBox.Show("媒体管理服务器登录失败!");
                }
                else
                {
                    MessageBox.Show("媒体管理服务器登录成功!");
                }
            }

            //3、录像初始化
            bool result6 = RecDataClass.Init();

            if (result6)
            {
                ShowResult("SDK初始化成功!");
            }
            else
            {
                ShowResult("SDK初始化失败!");
            }

            //4、报警初始化
            CommunicationClass.AlarmEvent += AlarmOperation.Alarm;
        }
コード例 #13
0
ファイル: RealPlayVideo.cs プロジェクト: liuslayer/RCCP
        /// <summary>
        /// 视频预览
        /// </summary>
        /// <param name="strDeviceID"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        public static int Open(string strDeviceID, int index, ref string IP, ref int nChannel, ref int m_lUserID, ref int m_lRealHandle)
        {
            if (Form1.videoboxs[index].InvokeRequired)
            {
                ControlDelegate d = Open;
                Form1.videoboxs[index].Invoke(d, strDeviceID, index, IP, nChannel, m_lUserID, m_lRealHandle);
            }
            else
            {
                Guid DeviceID = new Guid(strDeviceID);
                Entities.CameraList device = Class1.cameraList.Find(
                    delegate(Entities.CameraList camera)
                {
                    return(camera.DeviceID.Equals(DeviceID));
                }
                    );
                if (device == null)
                {
                    return(-1);
                }
                Entities.StreamMediaList streamMedia = Class1.streamMediaList.Find(
                    delegate(Entities.StreamMediaList sm)
                {
                    return(sm.DeviceID.Equals(device.StreamMedia_DeviceID));
                });
                if (streamMedia == null)
                {
                    return(-1);
                }
                IP       = streamMedia.VideoIP;
                nChannel = device.VideoChannel;
                string mediaMedia = System.Configuration.ConfigurationManager.AppSettings["MediaStream"];
                if (mediaMedia == "1")
                {
                    #region 流媒体预览
                    Entities.StreamServerList server = Class1.streamServerList.Find(
                        delegate(Entities.StreamServerList ss)
                    {
                        return(ss.DeviceID.Equals(streamMedia.StreamServerID));
                    }
                        );
                    if (server == null)
                    {
                        return(-1);
                    }
                    //视频预览
                    VMSdk.VM_CLIENT_CONFIG_VMSTREAMINGSER config = new VMSdk.VM_CLIENT_CONFIG_VMSTREAMINGSER();
                    config.sSID           = device.Stream_MainID.ToString();
                    config.sDeviceAddress = server.StreamServerIP;
                    if (SearchRealPlayVideo(config.sSID, index))
                    {
                        //流媒体预览视频
                        //Form1.hwnd[index] = VMSdk.VM_CLIENT_RealPlay(Form1.videoboxs[index].pictureBox1.Handle.ToInt32(), ref config, (int)VMSdk.VM_CLIENT_DEV_TYPE.VM_CLIENT_DEV_RTSP_VMSTREAMINGSER);

                        Form1.hwnd[index] = CMSSdk.VM_CMS_RealPlay(0, Form1.videoboxs[index].pictureBox1.Handle, config.sSID);
                        //存储视频信息
                        Form1.SID[index] = config.sSID;
                    }
                    #endregion
                }
                else
                {
                    if (SearchRealPlayVideo2(strDeviceID, index))
                    {
                        CHCNetSDK.NET_DVR_PREVIEWINFO lpPreviewInfo = new CHCNetSDK.NET_DVR_PREVIEWINFO();
                        lpPreviewInfo.hPlayWnd        = Form1.videoboxs[index].pictureBox1.Handle;              //预览窗口
                        lpPreviewInfo.lChannel        = device.VideoChannel;                                    //预te览的设备通道
                        lpPreviewInfo.dwStreamType    = 0;                                                      //码流类型:0-主码流,1-子码流,2-码流3,3-码流4,以此类推
                        lpPreviewInfo.dwLinkMode      = 0;                                                      //连接方式:0- TCP方式,1- UDP方式,2- 多播方式,3- RTP方式,4-RTP/RTSP,5-RSTP/HTTP
                        lpPreviewInfo.bBlocked        = true;                                                   //0- 非阻塞取流,1- 阻塞取流
                        lpPreviewInfo.dwDisplayBufNum = 15;                                                     //播放库播放缓冲区最大缓冲帧数
                        CHCNetSDK.REALDATACALLBACK RealData = new CHCNetSDK.REALDATACALLBACK(RealDataCallBack); //预览实时流回调函数
                        IntPtr pUser = new IntPtr();                                                            //用户数据
                        if (streamMedia.VideoIP == null)
                        {
                            return(-1);
                        }
                        if (!RecDll.ManualRec.userIDList.ContainsKey(streamMedia.VideoIP))
                        {
                            return(-1);
                        }
                        int UserID = RecDll.ManualRec.userIDList[streamMedia.VideoIP];
                        m_lUserID         = UserID;
                        Form1.hwnd[index] = CHCNetSDK.NET_DVR_RealPlay_V40(m_lUserID, ref lpPreviewInfo, null /*RealData*/, pUser);
                        m_lRealHandle     = Form1.hwnd[index];
                        if (Form1.hwnd[index] == -1)
                        {
                            uint temp = CHCNetSDK.NET_DVR_GetLastError();
                            MessageBox.Show("视频预览失败!");
                        }
                        else
                        {
                            //Form1.SID[index] = config.sSID;
                            Form1.DeviceIDs[index] = strDeviceID;
                            Form1.videoboxs[index].SetVideoInfo(IP, nChannel, m_lUserID, m_lRealHandle, strDeviceID, device.VideoName);
                        }
                    }
                }
            }
            return(Form1.hwnd[index]);
        }