Beispiel #1
0
        public void H264_DVR_PTZControlTest()
        {
            int  iLogin    = -1;
            int  intResult = 0;
            bool bolResult = false;

            SDKState.XMSDK_Init();
            H264_DVR_DEVICEINFO OutDev;
            int nError = 0;

            iLogin = SDK_XMSDK.H264_DVR_Login_Cloud("4bba3f71cdd143cb", 34567, "admin", "123456", out OutDev, out nError, "");
            H264_DVR_CLIENTINFO playstru = new H264_DVR_CLIENTINFO();

            playstru.nChannel = 0;
            //playstru.nChannel = 0;
            playstru.nStream = 0;
            playstru.nMode   = 1;
            playstru.hWnd    = IntPtr.Zero;
            int m_iPlayhandle = SDK_XMSDK.H264_DVR_RealPlay(Convert.ToInt32(iLogin), ref playstru);

            bolResult = SDK_XMSDK.H264_DVR_PTZControl(iLogin, 0, Convert.ToInt32(SDK_XMSDK.PTZ_ControlType.PAN_LEFTTOP), false, 10);
            //bolResult = SDK_XMSDK.H264_DVR_PTZControl(1, 0,1, false, 4);
            //(long lLoginID, int nChannelNo, long lPTZCommand, bool bStop DEF_PARAM(0), long lSpeed DEF_PARAM(4));
            Thread.Sleep(1000);
            SDK_XMSDK.H264_DVR_PTZControl(iLogin, 0, Convert.ToInt32(SDK_XMSDK.PTZ_ControlType.PAN_RIGTHDOWN), true, 0);
            //SDK_XMSDK.H264_DVR_PTZControl(iLogin, 1, Convert.ToInt64(SDK_XMSDK.PTZ_ControlType.TILT_DOWN), false, 100);
            //bool bolResult = SDK_XMSDK.H264_DVR_PTZControl(Convert.ToInt32(lLogin), CurrentCameraInfo.Channel, Convert.ToInt32(XMVideoPtzType), !bolStart, CurrentVideoPlaySet.PTZSpeed);
            SDK_XMSDK.H264_DVR_Logout(Convert.ToInt32(intResult));
            SDKState.XMSDK_Release();
            Assert.IsTrue(bolResult);
        }
Beispiel #2
0
        public bool OpenCamxm(Control cc)
        {
            if (status < 0)
            {
                return(false);
            }

            H264_DVR_CLIENTINFO playstru = new H264_DVR_CLIENTINFO();

            playstru.nChannel = 0;
            playstru.nStream  = 0;
            playstru.nMode    = 0;
            playstru.hWnd     = cc.Handle;
            m_iPlayhandle     = NetSDK.H264_DVR_RealPlay(devInfo.lLoginID, ref playstru);

            m_iPlayhandle = NetSDK.H264_DVR_RealPlay(devInfo.lLoginID, ref playstru);
            showCC        = cc;
            if (m_iPlayhandle <= 0)
            {
                Int32  dwErr = NetSDK.H264_DVR_GetLastError();
                string info  = string.Format("打开{0}摄像头失败,错误码:{1}", devInfo.szDevName, dwErr.ToString());
                MessageBox.Show(info);

                return(false);
            }
            else
            {
                NetSDK.H264_DVR_MakeKeyFrame(devInfo.lLoginID, 0, 0);
                return(true);
            }
        }
Beispiel #3
0
        public void StartPlay(IntPtr handle)
        {
            H264_DVR_CLIENTINFO lpClientInfo = new H264_DVR_CLIENTINFO();

            lpClientInfo.nChannel = VideoInfo.Channel;
            lpClientInfo.nStream  = 0;
            lpClientInfo.nMode    = 0;
            lpClientInfo.hWnd     = handle;

            int rHandle = XMNetSDK.H264_DVR_RealPlay(loginUserId, ref lpClientInfo);

            if (rHandle <= 0)
            {
                int nErr = XMNetSDK.H264_DVR_GetLastError();
                throw new Exception("[雄迈]播放失败:" + nErr);
            }
            hWnd       = handle;
            realHandle = rHandle;
        }
Beispiel #4
0
        private void VideoRealPlay()
        {
            H264_DVR_CLIENTINFO playstru = new H264_DVR_CLIENTINFO();

            playstru.nChannel       = CurrentCameraInfo.Channel - 1;
            playstru.nStream        = 1;
            playstru.nMode          = 0;
            playstru.hWnd           = intptrPlayMain;
            bolRequestRealVideoFlag = true;
            int Temp_intCount = 0;

            while (bolRequestRealVideoFlag)
            {
                VideoPlayCallback(new VideoPlayCallbackValue {
                    evType = Enum_VideoPlayEventType.RequestConn
                });
                m_iPlayhandle = SDK_XMSDK.H264_DVR_RealPlay(Convert.ToInt32(lLogin), ref playstru);
                if (m_iPlayhandle > 0)
                {
                    CurrentVideoInfo.NetworkState = 1;//在线
                    VideoPlayState = Enum_VideoPlayState.InPlayState;
                    VideoPlayCallback(new VideoPlayCallbackValue {
                        evType = Enum_VideoPlayEventType.VideoPlay
                    });                                                                                          //开始播放
                    bolRequestRealVideoFlag = false;
                    if (CurrentVideoPlaySet.VideoRecordEnable)
                    {
                        XMVideo_VideoRecordStart(CurrentVideoPlaySet.VideoRecordFilePath);
                    }
                }
                else
                {
                    VideoPlayState = Enum_VideoPlayState.NotInPlayState;
                    int intResult = SDK_XMSDK.H264_DVR_GetLastError();
                    //视频播放异常,后期根据 H264_DVR_GetLastError 获取错误码进行操作及 提示
                    switch (intResult)
                    {
                    case (int)SDK_RET_CODE.H264_DVR_NATCONNET_REACHED_MAX:
                        VideoPlayCallback(new VideoPlayCallbackValue {
                            evType = Enum_VideoPlayEventType.ConnNumMax
                        });                                                                                               //达到最大连接数量
                        break;

                    case (int)SDK_RET_CODE.H264_DVR_INVALID_HANDLE:     //句柄错误
                        VideoPlayCallback(new VideoPlayCallbackValue {
                            evType = Enum_VideoPlayEventType.VideoPlayException, EventContent = intResult.ToString() + "句柄错误"
                        });                                                                                                                                                     //视频播放异常
                        //退出,重新登陆
                        //注意: 有可能是后台登陆成功后触发这个错误 重新调用登陆接口打开新线程进行登陆
                        //将重连播放的标签置为Flase 结束前一个登陆线程
                        int Temp_intResult = SDK_XMSDK.H264_DVR_Logout(lLogin);
                        CurrentVideoInfo.LoginHandle = -1;
                        CurrentVideoInfo.LoginState  = 0;
                        SDK_XMSDK.DeviceLogin(CurrentVideoInfo);
                        bolRequestRealVideoFlag = false;
                        break;

                    default:
                        VideoPlayCallback(new VideoPlayCallbackValue {
                            evType = Enum_VideoPlayEventType.VideoPlayException, EventContent = intResult.ToString()
                        });                                                                                                                                            //视频播放异常
                        break;
                    }
                    Thread.Sleep(2000);
                }
                if (Temp_intCount > c_intMaxRealPlayNum || m_iPlayhandle > 0)
                {
                    bolRequestRealVideoFlag = false;
                }
                Temp_intCount++;
            }
        }