需求描述:
播放IPC摄像头(海康、大华)的录像回放,视频窗口下方有个进度条,能显示当前录像播放的进度,点击进度条能将视频跳转到指定的时间点继续播放... 现在需要再进度条上显示视频的时间,用来提示在哪个进度点去点击鼠标将视频跳转到指定的时间点继续播放
给进度条控件progressBar添加MouseMove变乱,变乱内代码如下:
- //鼠标在进度条上移动
- private void PlaybackprogressBar_MouseMove(object sender, MouseEventArgs e)
- {
- var progressBar = this.PlaybackprogressBar;//滑块控件
- // 计算鼠标位置对应的进度值
- int s = CalculateMouseValue(progressBar, e.X);
- int h = s / (60 * 60);//获得小时部分
- int y = s % (60 * 60);//取出余数
- int m = y / 60;//获得分钟部分
- string hh = h.ToString().PadLeft(2, '0');
- string mm = m.ToString().PadLeft(2, '0');
- string time = hh + ":" + mm;//hh:mm
- // 显示鼠标所在位置的进度值
- this.toolTip1.SetToolTip(progressBar, $"{this.dateTimeStart.Value.ToString("yyyy-MM-dd")} {time}");
- }
- //计算进度条的值
- private int CalculateMouseValue(MaterialSlider progressBar, int mouseX)
- {
- int minValue = 0;//最小值,0秒
- int maxValue = 86400;//最大值,一天有:60秒*60分钟*24小时=86400秒
- // 获取 ProgressBar 的宽度
- int barWidth = progressBar.Width;
- // 计算鼠标位置对应的进度值
- double ratio = (double)mouseX / barWidth;
- int value = (int)(minValue + ratio * (maxValue - minValue));
- // 确保计算的值在 ProgressBar 的有效范围内
- value = Math.Max(minValue, Math.Min(maxValue, value));
- return value;
- }
复制代码 效果如图:
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |