MujicaUI

Media · #347

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

347 VideoThumbnailStrip 缩略帧条

用途

横向缩略帧条:标出当前帧,点击或按键跳转。

最小示例

frames := []media.StripFrame{{At: 0}, {At: 10 * time.Second}, {At: 20 * time.Second}}
current := 0
view := func(c *ui.Context) {
	core.Use(c, core.Settings{})
	if media.VideoThumbnailStrip(c, &current, frames, media.VideoThumbnailStripOptions{}).Changed() {
		_ = frames[current].At // seek the player there
	}
}
ui.Render(view, 400, 300, 1)

参数

func VideoThumbnailStrip(c *ui.Context, current *int, frames []StripFrame, opts VideoThumbnailStripOptions) ChoiceResult

StripFrame 有 Image(可为 nil)和 At。*current 越界 panic。

字段类型默认值含义
FrameWidthfloat320(即 96)每格宽度,高度按 16:9。
Disabledboolfalse禁用。

状态

  • 只构建放得下的那几格,窗口跟随当前帧移动;10 万帧也只建十几个元素。
  • 当前帧:强调边框加菱形;每格左下角显示时间。

事件

Changed() 在当前帧变化后为 true;调用方据此跳转播放器。

键盘操作

按键作用
Tab聚焦帧条
← / →上一帧 / 下一帧
Home / End第一帧 / 最后一帧

限制

  • 不提供横向滚动条,用两侧按钮或键盘移动。