private bool Ezviz_VideoPlay() { bool bolResult = false; int intLenght = 0; int intResult = 0; //CurrentVideoInfo.NetworkState = SDK_EzvizSDK.GetDevOnlineState(CurrentVideoInfo.DVSAddress, CurrentCameraInfo.Channel); int Temp_intResult = SDK_EzvizSDK.GetDevOnlineState(CurrentVideoInfo.DVSAddress, CurrentCameraInfo.Channel); if (Temp_intResult == -2) { //设备无权限 VideoPlayCallback(new VideoPlayCallbackValue { evType = Enum_VideoPlayEventType.NoDeviceAuthority }); return(bolResult); } CurrentVideoInfo.NetworkState = Temp_intResult; if (Temp_intResult == 0) { //设备离线 VideoPlayCallback(new VideoPlayCallbackValue { evType = Enum_VideoPlayEventType.VideoDeviceNotOnline }); return(bolResult); } //状态未明进行连接 callBack = new SDK_EzvizSDK.MsgHandler(Ezviz_MsgCallback); Ezviz_gchMsgBack = GCHandle.Alloc(callBack); strUser = CurrentVideoInfo.DVSAddress + "_" + CurrentCameraInfo.Channel; iUser = Marshal.StringToHGlobalAnsi(strUser); VideoPlayState = Enum_VideoPlayState.Connecting; intResult = SDK_EzvizSDK.OpenSDK_AllocSessionEx(callBack, iUser, out intptrSessionID, out intLenght); if (CurrentVideoPlaySet.VideoRecordEnable) { //录像启用 strRealSavePath = GetLocalSavePath(CurrentVideoPlaySet.VideoRecordFilePath, CurrentVideoPlaySet.VideoRecordFileName); if (!Directory.Exists(CurrentVideoPlaySet.VideoRecordFilePath)) { Directory.CreateDirectory(CurrentVideoPlaySet.VideoRecordFilePath); } Ezviz_DataCallBack = new SDK_EzvizSDK.DataCallBack(Ezviz_DataCallBackEvent); Ezviz_gchVideoRecord = GCHandle.Alloc(Ezviz_DataCallBack); intResult = SDK_EzvizSDK.OpenSDK_SetDataCallBack(intptrSessionID, Ezviz_DataCallBack, iUser); VideoRecordStatus = true; } IntPtr intptrdevSerial = Marshal.StringToHGlobalAnsi(CurrentVideoInfo.DVSAddress); if (CurrentVideoInfo.DVSAddress.StartsWith("C")) { intResult = SDK_EzvizSDK.OpenSDK_StartPlayWithStreamType(intptrSessionID, intptrPlayMain, intptrdevSerial, CurrentCameraInfo.Channel, CurrentVideoInfo.Password, -1); } else { intResult = SDK_EzvizSDK.OpenSDK_StartRealPlayEx(intptrSessionID, intptrPlayMain, intptrdevSerial, CurrentCameraInfo.Channel, CurrentVideoInfo.Password); } if (intResult == 0) { VideoPlayCallback(new VideoPlayCallbackValue { evType = Enum_VideoPlayEventType.ConnSuccess }); } else { VideoPlayCallback(new VideoPlayCallbackValue { evType = Enum_VideoPlayEventType.ConnFailed }); } return(bolResult); }