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