Files
auto-caption/assets/technical-docs/api-doc.md
himeditator 0b279dedbf docs(api): 修改部分通信接口、更新 API 文档
- 重新定义了通信命令的命名规则和语义
- 修改了多个前端和后端之间的通信接口
- 为模型信息添加国际化
2025-07-04 18:38:56 +08:00

227 lines
4.3 KiB
Markdown

# api-doc
本文档主要记录主进程和渲染进程的通信约定。
## 命名方式
本项目渲染进程包含两个:字幕窗口和控制窗口,主进程需要分别和两者进行通信。通信命令的命名规则如下:
1. 命令一般由三个关键字组成,由点号隔开。
2. 第一个关键字表示通信发送目标:
- `config` 表示控制窗口类实例(后端)或控制窗口(前端)
- `engine` 表示字幕窗口类实例(后端)或字幕窗口(前端)
- `both` 表示上述对象都有可能成为目标
3. 第二个关键字表示需要修改的对象 / 发生改变的对象,采用小驼峰命名
4. 第三个关键字一般是动词,表示通信发生时对应动作 / 需要进行的操作
根据上面的描述可以看出通信命令一般有两种语义,一种表示要求执行的操作,另一种表示当前发生的事件。
## 前端 <=> 后端
### `control.captionLog.clear`
**介绍:**清空字幕记录
**发起方:**前端控制窗口
**接收方:**后端控制窗口实例
**数据类型:**
- 发送:无数据
- 接收:`CaptionItem[]`
## 前端 ==> 后端
### `control.styles.change`
**介绍:**前端修改字幕样式,将修改同步给后端
**发起方:**前端控制窗口
**接收方:**后端控制窗口实例
**数据类型:**`Styles`
### `control.styles.reset`
**介绍:**将字幕样式恢复为默认
**发起方:**前端控制窗口
**接收方:**后端控制窗口实例
**数据类型:**无数据
### `control.controls.change`
**介绍:**前端修改了字幕引擎配置,将最新配置发送给后端
**发起方:**前端控制窗口
**接收方:**后端控制窗口实例
**数据类型:**`Controls`
### `control.captionWindow.activate`
**介绍:**激活字幕窗口
**发起方:**前端控制窗口
**接收方:**后端控制窗口实例
**数据类型:**无数据
### `control.engine.start`
**介绍:**启动字幕引擎
**发起方:**前端控制窗口
**接收方:**后端控制窗口实例
**数据类型:**无数据
### `control.engine.stop`
**介绍:**关闭字幕引擎
**发起方:**前端控制窗口
**接收方:**后端控制窗口实例
**数据类型:**无数据
### `caption.windowHeight.change`
**介绍:**字幕窗口宽度发生改变
**发起方:**前端字幕窗口
**接收方:**后端字幕窗口实例
**数据类型:**`number`
### `caption.pin.set`
**介绍:**是否将窗口置顶
**发起方:**前端字幕窗口
**接收方:**后端字幕窗口实例
**数据类型:**`boolean`
### `caption.controlWindow.activate`
**介绍:**激活控制窗口
**发起方:**前端字幕窗口
**接收方:**后端字幕窗口实例
**数据类型:**无数据
### `caption.window.close`
**介绍:**关闭字幕窗口
**发起方:**前端字幕窗口
**接收方:**后端字幕窗口实例
**数据类型:**无数据
## 后端 ==> 前端
### `control.engine.already`
**介绍:**引擎已经启动
**发起方:**后端
**接收方:**前端控制窗口
**数据类型:**无数据
### `control.engine.started`
**介绍:**引擎启动
**发起方:**后端
**接收方:**前端控制窗口
**数据类型:**无数据
### `control.engine.stopped`
**介绍:**引擎关闭
**发起方:**后端
**接收方:**前端控制窗口
**数据类型:**无数据
### `control.error.occurred`
**介绍:**发送错误
**发起方:**后端
**接收方:**前端控制窗口
**数据类型:**`string`
### `control.controls.set`
**介绍:**后端将最新字幕引擎配置发送给前端,前端进行设置
**发起方:**后端
**接收方:**前端控制窗口
**数据类型:**`Controls`
### `caption.styles.set`
**介绍:**后端将最新字幕样式发送给前端,前端进行设置
**发起方:**后端
**接收方:**前端
**数据类型:**`Styles`
### `both.captionLog.add`
**介绍:**添加一条新的字幕数据
**发起方:**后端
**接收方:**前端
**数据类型:**`CaptionItem`
### `both.captionLog.upd`
**介绍:**更新最后一条字幕数据
**发起方:**后端
**接收方:**前端
**数据类型:**`CaptionItem`
### `both.captionLog.set`
**介绍:**设置全部的字幕数据
**发起方:**后端
**接收方:**前端
**数据类型:**`CaptionItem[]`