52 lines
1.4 KiB
Markdown
52 lines
1.4 KiB
Markdown
# 356 ScreenRecorderControls 录屏控制
|
||
|
||
## 用途
|
||
|
||
开始、暂停、继续、停止录制并显示计时;录制本身由调用方实现。
|
||
|
||
## 最小示例
|
||
|
||
```go
|
||
st := mujica.RecorderState{}
|
||
view := func(c *ui.Context) {
|
||
mujica.Use(c, mujica.Settings{})
|
||
mujica.ScreenRecorderControls(c, st, mujica.ScreenRecorderControlsOptions{
|
||
OnStart: func() { st.Status = mujica.RecorderRecording },
|
||
OnPause: func() { st.Status = mujica.RecorderPaused },
|
||
OnResume: func() { st.Status = mujica.RecorderRecording },
|
||
OnStop: func() { st = mujica.RecorderState{} },
|
||
})
|
||
}
|
||
ui.Render(view, 400, 300, 1)
|
||
```
|
||
|
||
## 参数
|
||
|
||
`func ScreenRecorderControls(c *ui.Context, st RecorderState, opts ScreenRecorderControlsOptions) *ui.Element`
|
||
|
||
`RecorderState`:`Status`(`RecorderIdle`、`RecorderRecording`、`RecorderPaused`)、`Elapsed`。
|
||
|
||
| 字段 | 类型 | 默认值 | 含义 |
|
||
| --- | --- | --- | --- |
|
||
| `OnStart / OnPause / OnResume / OnStop` | `func()` | 必填 | 缺少任一回调时 panic。 |
|
||
| `Disabled` | `bool` | false | 禁用。 |
|
||
|
||
## 状态
|
||
|
||
就绪、录制中(红点)、已暂停;状态同时用文字表示,不只靠圆点颜色。录制中的圆点不闪烁。
|
||
|
||
## 事件
|
||
|
||
全部通过回调报告。
|
||
|
||
## 键盘操作
|
||
|
||
| 按键 | 作用 |
|
||
| --- | --- |
|
||
| Tab | 在按钮间移动 |
|
||
| Enter / Space | 按下 |
|
||
|
||
## 限制
|
||
|
||
- 计时由调用方更新 `Elapsed`。
|