Exemplo n.º 1
0
 private void OnBriefObjectPlayBackEvent(VodInfo info)
 {
     expandableSplitter2.Expanded = true;
 }
Exemplo n.º 2
0
        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);
        }