コード例 #1
0
        public long StartReplay(IReplayModel iReplayModel)
        {
            ReplayModel replayModel = iReplayModel as ReplayModel;

            if (!ValidateReplayParam(replayModel))
            {
                return(-1);
            }

            if (!VideoRecordCache.HasTimeSpecificRecordFile(replayModel.ReplayCamera.ChannelID, replayModel.ReplayTimeRange.BeginTime))
            {
                return(-1);
            }

            long replayHandle = ReplayAdapter.StartReplay(replayModel);

            if (replayHandle < 0)
            {
                return(-1);
            }

            RelayStatusModel playStatus = new RelayStatusModel
            {
                Camera = replayModel.ReplayCamera,
                PlayingScreenHandle = replayModel.ScreenHandle,
                StartPlayDateTime   = replayModel.ReplayTimeRange.BeginTime,
                PlayingHandle       = replayHandle,
                PlayingStatus       = PlayStatus.Play,
                PlayingSpeed        = 1,
            };

            _replayingStatusModelDict.TryAdd(replayModel.ScreenHandle, playStatus);

            return(replayHandle);
        }
コード例 #2
0
        public bool StartReplay(IReplayModel replayModel)
        {
            //回放参数必须不能为空
            if (replayModel == null)
            {
                return(false);
            }

            InitializePlayScreen();

            replayModel.ScreenHandle = ScreenHandle;
            long replayHandle = _recordPlayHelper.StartReplay(replayModel);

            if (replayHandle >= 0)
            {
                SetValue(ReplayStatusKey, PlayStatus.Play);
                PlayHandle = replayHandle;
                return(true);
            }

            return(false);
        }
コード例 #3
0
        public bool ReplayControl(IReplayModel replayModel)
        {
            if (replayModel == null)
            {
                return(false);
            }

            switch (replayModel.ReplayStatus)
            {
            case PlayStatus.Play:
                if (ReplayStatus == PlayStatus.Unknown || ReplayStatus == PlayStatus.Stop)
                {
                    return(StartReplay(replayModel));
                }
                else
                {
                    return(ContinueReplay());
                }

            case PlayStatus.Stop:
                return(StopReplay());

            case PlayStatus.Pause:
                return(PauseReplay());

            case PlayStatus.FastForward:
                return(FastReplay());

            case PlayStatus.SlowForward:
                return(SlowReplay());

            //case PlayStatus.SetPos:
            //    return SetReplayPosition(replayModel.BeginTime);
            default:
                return(false);
            }
        }