Files
auto-caption/docs/api-docs/electron-ipc.md
himeditator d354a6fefa feat(engine): 优化 Vosk 字幕引擎支持
- 实现文件夹选择功能,用于选择 Vosk 模型路径
- 在 EngineControl 组件中添加模型路径选择按钮和相关提示
- 在 EngineStatus 组件中增加对空模型路径的检查和错误提示
2025-07-10 11:22:39 +08:00

5.9 KiB

electron ipc api-doc

本文档主要记录主进程和渲染进程的通信约定。

命名方式

本项目渲染进程包含两个:字幕窗口和控制窗口,主进程需要分别和两者进行通信。通信命令的命名规则如下:

  1. 命令一般由三个关键字组成,由点号隔开。
  2. 第一个关键字表示通信发送目标:
    • config 表示控制窗口类实例(后端)或控制窗口(前端)
    • engine 表示字幕窗口类实例(后端)或字幕窗口(前端)
    • both 表示上述对象都有可能成为目标
  3. 第二个关键字表示需要修改的对象 / 发生改变的对象,采用小驼峰命名
  4. 第三个关键字一般是动词,表示通信发生时对应动作 / 需要进行的操作

根据上面的描述可以看出通信命令一般有两种语义,一种表示要求执行的操作,另一种表示当前发生的事件。

前端 <=> 后端

both.window.mounted

介绍: 前端窗口挂载完毕,请求最新的配置数据

发起方: 前端

接收方: 后端

数据类型:

  • 发送:无数据
  • 接收:FullConfig

control.nativeTheme.get

介绍: 前端获取系统当前的主题

发起方: 前端控制窗口

接收方: 后端控制窗口实例

数据类型:

  • 发送:无数据
  • 接收:string

control.folder.select

介绍: 打开文件夹选择器,并将用户选择的文件夹路径返回给前端

发起方: 前端控制窗口

接收方: 后端控制窗口实例

数据类型:

  • 发送:无数据
  • 接收:string

前端 ==> 后端

control.uiLanguage.change

介绍: 前端修改字界面语言,将修改同步给后端

发起方: 前端控制窗口

接收方: 后端控制窗口实例

数据类型: UILanguage

control.uiTheme.change

介绍: 前端修改字界面主题,将修改同步给后端

发起方: 前端控制窗口

接收方: 后端控制窗口实例

数据类型: UITheme

control.leftBarWidth.change

介绍: 前端修改边栏宽度,将修改同步给后端

发起方: 前端控制窗口

接收方: 后端控制窗口实例

数据类型: number

control.captionLog.clear

介绍: 清空字幕记录

发起方: 前端控制窗口

接收方: 后端控制窗口实例

数据类型: 无数据

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.uiLanguage.set

介绍: 后端将最新界面语言发送给前端,前端进行设置

发起方: 后端

接收方: 字幕窗口

数据类型: UILanguage

control.nativeTheme.change

介绍: 系统主题发生改变

发起方: 后端

接收方: 前端控制窗口

数据类型: string

control.engine.started

介绍: 引擎启动成功

发起方: 后端

接收方: 前端控制窗口

数据类型: 无数据

control.engine.stopped

介绍: 引擎关闭

发起方: 后端

接收方: 前端控制窗口

数据类型: 无数据

control.error.occurred

介绍: 发送错误

发起方: 后端

接收方: 前端控制窗口

数据类型: string

control.controls.set

介绍: 后端将最新字幕引擎配置发送给前端,前端进行设置

发起方: 后端

接收方: 前端控制窗口

数据类型: Controls

both.styles.set

介绍: 后端将最新字幕样式发送给前端,前端进行设置

发起方: 后端

接收方: 前端

数据类型: Styles

both.captionLog.add

介绍: 添加一条新的字幕数据

发起方: 后端

接收方: 前端

数据类型: CaptionItem

both.captionLog.upd

介绍: 更新最后一条字幕数据

发起方: 后端

接收方: 前端

数据类型: CaptionItem

both.captionLog.set

介绍: 设置全部的字幕数据

发起方: 后端

接收方: 前端

数据类型: CaptionItem[]