MujicaUI

Media · #346

VideoScrubber 浅色主题渲染快照
浅色 · 渲染快照
VideoScrubber 深色主题渲染快照
深色 · 渲染快照

346 VideoScrubber 视频时间轴

用途

可拖动的时间轴:显示已缓冲区间,悬停显示时间和缩略图插槽。

最小示例

pos := 30 * time.Second
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	media.VideoScrubber(c, &pos, media.VideoScrubberOptions{
		Duration: 2 * time.Minute,
		Buffered: []media.MediaRange{{Start: 0, End: time.Minute}},
	})
}
ui.Render(view, 400, 300, 1)

参数

func VideoScrubber(c *ui.Context, pos *time.Duration, opts VideoScrubberOptions) ChoiceResult

*pos 必须在 0 到 Duration 之间,否则 panic。

字段类型默认值含义
Durationtime.Duration必填时间轴长度,须大于 0。
Buffered[]MediaRangenil已缓冲区间,以浅色填充。
Previewfunc(at time.Duration)nil悬停时在插槽里构建该时间的缩略图。
PreviewWidth / PreviewHeightfloat32160×90插槽尺寸。
Steptime.Duration5 秒方向键每次移动的时长。
Disabledboolfalse禁用。
Labelstring"Timeline"无障碍名称;以滑块角色报告范围与数值。

状态

默认、悬停(显示时间气泡)、拖动、聚焦(菱形手柄外圈)、禁用。

事件

Changed() 在拖动、点击或按键改变 *pos 后为 true。

键盘操作

按键作用
← / ↓后退一个 Step
→ / ↑前进一个 Step
Home / End开头 / 结尾

限制

  • 位置按毫秒取整。
  • 悬停插槽只在指针位于时间轴上时显示,键盘操作时不显示。