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); }
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); } }
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; }
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++; } }