public TtsDefenseStrategy(ISaiFrameTransport frameTransport, bool isInitiator) { this.Calculator = new TimeOffsetCalculator(isInitiator, ExtraDelay, MaxDifference); this.LocalTts = new TripleTimestamp(this); _timeOffsetUpdater = new TimeOffsetUpdater(frameTransport, this, TimeOffserUpdateInterval); }
/// <summary> /// 构造函数 /// </summary> /// <param name="frameTransport"></param> /// <param name="observer"></param> /// <param name="interval">TTS更新周期(单位:秒)</param> public TimeOffsetUpdater(ISaiFrameTransport frameTransport, ITimeOffsetUpdaterObserver observer, int interval) { if (interval < MinInterval) { throw new ArgumentException(string.Format("TTS更新周期不能小于{0}秒。", MinInterval)); } _ttsFrameTransport = frameTransport; _ttsFrameTransport.SaiFrameReceived += OnSaiFrameReceived; _observer = observer; this.CreateTimer(interval); this.StartTimer(); }