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