protected virtual void On播放状态变化(E播放状态 __状态) { var handler = 播放状态变化; if (handler != null) { handler(__状态); } }
public void 初始化(List <MGPS> __GPS数据) { _当前播放状态 = E播放状态.初始化; On播放状态变化(_当前播放状态); //查询GPS数据 实际开始时间 = __GPS数据.First().时间; 实际结束时间 = __GPS数据.Last().时间; _GPS数据列表 = new List <MGPS>(__GPS数据); }
public void 停止() { if (_GPS数据列表.Count > 0) { On位置更新(_GPS数据列表[_GPS数据列表.Count - 1]); } _当前播放状态 = E播放状态.停止; On播放状态变化(_当前播放状态); On播放进度变化(100); On当前时间变化(实际结束时间); _播放定时器.Dispose(); }
public void 显示播放状态(E播放状态 状态) { if (this.InvokeRequired) { this.BeginInvoke(new Action <E播放状态>(显示播放状态), 状态); return; } this.in速度.Enabled = true; this.do暂停.Enabled = true; this.do播放.Enabled = true; this.do停止.Enabled = true; this.out进度.Enabled = false; switch (状态) { case E播放状态.可用: this.do暂停.Enabled = false; this.do播放.Enabled = false; this.do停止.Enabled = false; this.in速度.Enabled = false; break; case E播放状态.初始化: this.do播放.BringToFront(); this.do暂停.Enabled = false; this.do停止.Enabled = false; break; case E播放状态.播放: this.out进度.Enabled = true; this.do播放.Enabled = false; this.do暂停.BringToFront(); break; case E播放状态.暂停: this.do播放.BringToFront(); this.do暂停.Enabled = false; break; case E播放状态.停止: this.do播放.BringToFront(); this.do停止.Enabled = false; this.do暂停.Enabled = false; break; default: throw new ArgumentOutOfRangeException("状态"); } }
public void 播放(int __倍速) { _播放倍速 = __倍速; if (_当前播放状态 == E播放状态.初始化 || _当前播放状态 == E播放状态.停止) { _回放标识++; _当前播放时间 = 实际开始时间; _当前播放状态 = E播放状态.播放; _播放定时器 = new Timer(定时执行, _回放标识, 0, _定时器间隔); } else { _当前播放状态 = E播放状态.播放; } On播放状态变化(_当前播放状态); }
public void 播放(int __频率) { _定时器间隔 = 1000 / __频率; if (_当前播放状态 == E播放状态.初始化 || _当前播放状态 == E播放状态.停止) { _回放标识++; _当前播放时间 = 实际开始时间; _播放索引 = 0; _当前播放状态 = E播放状态.播放; _播放定时器 = new Timer(定时执行, _回放标识, 0, _定时器间隔); } else { _当前播放状态 = E播放状态.播放; } On播放状态变化(_当前播放状态); }
public void 停止() { if (_GPS数据列表 != null && _GPS数据列表.Count > 0) { foreach (var __kv in _GPS数据列表) { var __号码 = __kv.Key; var __GPS列表 = __kv.Value; if (__GPS列表.Count > 0) { On位置更新(__号码, __GPS列表.Last()); } } } _当前播放状态 = E播放状态.停止; On播放状态变化(_当前播放状态); On播放进度变化(100); On当前时间变化(实际结束时间); _播放定时器.Dispose(); }
public void 初始化(Dictionary <string, List <MGPS> > 回放参数) { _当前播放状态 = E播放状态.初始化; On播放状态变化(_当前播放状态); //查询GPS数据 实际开始时间 = DateTime.MaxValue; 实际结束时间 = DateTime.MinValue; foreach (var __kv in 回放参数) { if (__kv.Value.Count > 0) { if (__kv.Value.First().时间 < 实际开始时间) { 实际开始时间 = __kv.Value.First().时间; } if (__kv.Value.Last().时间 > 实际结束时间) { 实际结束时间 = __kv.Value.Last().时间; } _GPS数据列表[__kv.Key] = new List <MGPS>(__kv.Value); } } }
public void 暂停() { _当前播放状态 = E播放状态.暂停; On播放状态变化(_当前播放状态); }