private void OnBriefObjectPlayBackEvent(VodInfo info) { expandableSplitter2.Expanded = true; }
public int OpenVideo(IntPtr hWnd, uint taskUnitID, DateTime startTime = new DateTime(), DateTime endTime = new DateTime(), bool isFullFile = true, bool needClose = false) { int playhandle = GetPlayHandleByhWnd(hWnd); if (playhandle == 0) { if (!Framework.Environment.CheckMemeryUse()) { throw new SDKCallException(0, "内存占用过大,请关闭视频播放或取消检索后再试。"); } TaskUnitInfo taskunit = Framework.Container.Instance.TaskManagerService.GetTaskUnitById(taskUnitID); VodInfo info = new VodInfo(); info.VideoTaskUnitID = taskUnitID; info.PlayWnd = hWnd; info.StartTime = startTime; info.EndTime = endTime; info.IsPlayAllFile = false; if (startTime == DateTime.MinValue && endTime == DateTime.MinValue) { info.IsPlayAllFile = true; } if (!isFullFile) { info.EndTime = new DateTime(); info.StartTime = new DateTime(); info.IsPlayAllFile = true; } playhandle = Framework.Container.Instance.IVXProtocol.PlayBackByTaskUnit(info, 0); } else { if (m_DTVideoStatusList[playhandle].VideoTaskUnitID != taskUnitID || needClose) { if (!Framework.Environment.CheckMemeryUse()) { throw new SDKCallException(0, "内存占用过大,请关闭视频播放或取消检索后再试。"); } if (playhandle != 0) { StopVideo(hWnd); } playhandle = 0; VodInfo info = new VodInfo(); info.VideoTaskUnitID = taskUnitID; info.PlayWnd = hWnd; info.StartTime = startTime; info.EndTime = endTime; info.IsPlayAllFile = false; if (startTime == DateTime.MinValue && endTime == DateTime.MinValue) { info.IsPlayAllFile = true; } if (!isFullFile) { info.EndTime = new DateTime(); info.StartTime = new DateTime(); info.IsPlayAllFile = true; } playhandle = Framework.Container.Instance.IVXProtocol.PlayBackByTaskUnit(info, 0); } } if (playhandle > 0) { VideoStatusInfo statinfo = new VideoStatusInfo(); statinfo.VideoTaskUnitID = taskUnitID; statinfo.CurrPlayTime = 0; statinfo.HWnd = hWnd; statinfo.PlaySpeed = E_VDA_PLAY_SPEED.E_PLAYSPEED_NORMALSPEED; statinfo.PlayState = VideoStatusType.E_NULL; statinfo.PlayVideoHandle = playhandle; //Framework.Container.Instance.IVXProtocol.PlayBackControl(playhandle, E_VDA_PLAYCTRL_TYPE.E_PLAYCTRL_GETTIME_RANGE, 0, out outval); //statinfo.TotlePlayTime = outval; //statinfo.StartPlayTime = Protocol.Model.ModelParser.ConvertLinuxTime(startTime); //statinfo.EndPlayTime = Protocol.Model.ModelParser.ConvertLinuxTime(endTime); m_DTVideoStatusList[playhandle] = statinfo; m_DTVideoHandleList[playhandle] = hWnd; } return(playhandle); }