refactor(caption-engine): 重构字幕引擎代码结构

- 重构 GummyTranslator 类,增加启动和停止方法
- 优化 AudioStream 类,添加读取音频数据方法
- 更新 main-gummy.py,使用新的 GummyTranslator 和 AudioStream 接口
- 更新文档和 TODO 列表
This commit is contained in:
himeditator
2025-07-06 22:46:46 +08:00
parent 213426dace
commit f2aa075e65
16 changed files with 517 additions and 174 deletions

View File

@@ -1,6 +1,16 @@
## 已完成
- [x] 添加英语和日语语言支持 *2025/07/04*
- [x] 添加暗色主题 *2025/07/04*
- [x] 优化长字幕显示效果 *2025/07/05*
- [x] 修复字幕引擎空置报错的问题 *2025/07/05*
- [ ] 添加更多字幕引擎
- [ ] 减小软件体积
## 待完成
- [ ] 添加复制字幕到剪贴板功能
- [ ] 添加本地字幕引擎
- [ ] 减小软件不必要的体积
## 遥远的未来
- [ ] 使用 Tauri 框架重新开发

View File

@@ -20,11 +20,11 @@
### `both.window.mounted`
**介绍:**前端窗口挂载完毕,请求最新的配置数据
**介绍:** 前端窗口挂载完毕,请求最新的配置数据
**发起方:**前端
**发起方:** 前端
**接收方:**后端
**接收方:** 后端
**数据类型:**
@@ -33,11 +33,11 @@
### `control.nativeTheme.get`
**介绍:**前端获取系统当前的主题
**介绍:** 前端获取系统当前的主题
**发起方:**前端控制窗口
**发起方:** 前端控制窗口
**接收方:**后端控制窗口实例
**接收方:** 后端控制窗口实例
**数据类型:**
@@ -48,242 +48,242 @@
### `control.uiLanguage.change`
**介绍:**前端修改字界面语言,将修改同步给后端
**介绍:** 前端修改字界面语言,将修改同步给后端
**发起方:**前端控制窗口
**发起方:** 前端控制窗口
**接收方:**后端控制窗口实例
**接收方:** 后端控制窗口实例
**数据类型:**`UILanguage`
**数据类型:** `UILanguage`
### `control.uiTheme.change`
**介绍:**前端修改字界面主题,将修改同步给后端
**介绍:** 前端修改字界面主题,将修改同步给后端
**发起方:**前端控制窗口
**发起方:** 前端控制窗口
**接收方:**后端控制窗口实例
**接收方:** 后端控制窗口实例
**数据类型:**`UITheme`
**数据类型:** `UITheme`
### `control.leftBarWidth.change`
**介绍:**前端修改边栏宽度,将修改同步给后端
**介绍:** 前端修改边栏宽度,将修改同步给后端
**发起方:**前端控制窗口
**发起方:** 前端控制窗口
**接收方:**后端控制窗口实例
**接收方:** 后端控制窗口实例
**数据类型:**`number`
**数据类型:** `number`
### `control.captionLog.clear`
**介绍:**清空字幕记录
**介绍:** 清空字幕记录
**发起方:**前端控制窗口
**发起方:** 前端控制窗口
**接收方:**后端控制窗口实例
**接收方:** 后端控制窗口实例
**数据类型:**无数据
**数据类型:** 无数据
### `control.styles.change`
**介绍:**前端修改字幕样式,将修改同步给后端
**介绍:** 前端修改字幕样式,将修改同步给后端
**发起方:**前端控制窗口
**发起方:** 前端控制窗口
**接收方:**后端控制窗口实例
**接收方:** 后端控制窗口实例
**数据类型:**`Styles`
**数据类型:** `Styles`
### `control.styles.reset`
**介绍:**将字幕样式恢复为默认
**介绍:** 将字幕样式恢复为默认
**发起方:**前端控制窗口
**发起方:** 前端控制窗口
**接收方:**后端控制窗口实例
**接收方:** 后端控制窗口实例
**数据类型:**无数据
**数据类型:** 无数据
### `control.controls.change`
**介绍:**前端修改了字幕引擎配置,将最新配置发送给后端
**介绍:** 前端修改了字幕引擎配置,将最新配置发送给后端
**发起方:**前端控制窗口
**发起方:** 前端控制窗口
**接收方:**后端控制窗口实例
**接收方:** 后端控制窗口实例
**数据类型:**`Controls`
**数据类型:** `Controls`
### `control.captionWindow.activate`
**介绍:**激活字幕窗口
**介绍:** 激活字幕窗口
**发起方:**前端控制窗口
**发起方:** 前端控制窗口
**接收方:**后端控制窗口实例
**接收方:** 后端控制窗口实例
**数据类型:**无数据
**数据类型:** 无数据
### `control.engine.start`
**介绍:**启动字幕引擎
**介绍:** 启动字幕引擎
**发起方:**前端控制窗口
**发起方:** 前端控制窗口
**接收方:**后端控制窗口实例
**接收方:** 后端控制窗口实例
**数据类型:**无数据
**数据类型:** 无数据
### `control.engine.stop`
**介绍:**关闭字幕引擎
**介绍:** 关闭字幕引擎
**发起方:**前端控制窗口
**发起方:** 前端控制窗口
**接收方:**后端控制窗口实例
**接收方:** 后端控制窗口实例
**数据类型:**无数据
**数据类型:** 无数据
### `caption.windowHeight.change`
**介绍:**字幕窗口宽度发生改变
**介绍:** 字幕窗口宽度发生改变
**发起方:**前端字幕窗口
**发起方:** 前端字幕窗口
**接收方:**后端字幕窗口实例
**接收方:** 后端字幕窗口实例
**数据类型:**`number`
**数据类型:** `number`
### `caption.pin.set`
**介绍:**是否将窗口置顶
**介绍:** 是否将窗口置顶
**发起方:**前端字幕窗口
**发起方:** 前端字幕窗口
**接收方:**后端字幕窗口实例
**接收方:** 后端字幕窗口实例
**数据类型:**`boolean`
**数据类型:** `boolean`
### `caption.controlWindow.activate`
**介绍:**激活控制窗口
**介绍:** 激活控制窗口
**发起方:**前端字幕窗口
**发起方:** 前端字幕窗口
**接收方:**后端字幕窗口实例
**接收方:** 后端字幕窗口实例
**数据类型:**无数据
**数据类型:** 无数据
### `caption.window.close`
**介绍:**关闭字幕窗口
**介绍:** 关闭字幕窗口
**发起方:**前端字幕窗口
**发起方:** 前端字幕窗口
**接收方:**后端字幕窗口实例
**接收方:** 后端字幕窗口实例
**数据类型:**无数据
**数据类型:** 无数据
## 后端 ==> 前端
### `control.uiLanguage.set`
**介绍:**后端将最新界面语言发送给前端,前端进行设置
**介绍:** 后端将最新界面语言发送给前端,前端进行设置
**发起方:**后端
**发起方:** 后端
**接收方:**字幕窗口
**接收方:** 字幕窗口
**数据类型:**`UILanguage`
**数据类型:** `UILanguage`
### `control.nativeTheme.change`
**介绍:**系统主题发生改变
**介绍:** 系统主题发生改变
**发起方:**后端
**发起方:** 后端
**接收方:**前端控制窗口
**接收方:** 前端控制窗口
**数据类型:**`string`
**数据类型:** `string`
### `control.engine.started`
**介绍:**引擎启动成功
**介绍:** 引擎启动成功
**发起方:**后端
**发起方:** 后端
**接收方:**前端控制窗口
**接收方:** 前端控制窗口
**数据类型:**无数据
**数据类型:** 无数据
### `control.engine.stopped`
**介绍:**引擎关闭
**介绍:** 引擎关闭
**发起方:**后端
**发起方:** 后端
**接收方:**前端控制窗口
**接收方:** 前端控制窗口
**数据类型:**无数据
**数据类型:** 无数据
### `control.error.occurred`
**介绍:**发送错误
**介绍:** 发送错误
**发起方:**后端
**发起方:** 后端
**接收方:**前端控制窗口
**接收方:** 前端控制窗口
**数据类型:**`string`
**数据类型:** `string`
### `control.controls.set`
**介绍:**后端将最新字幕引擎配置发送给前端,前端进行设置
**介绍:** 后端将最新字幕引擎配置发送给前端,前端进行设置
**发起方:**后端
**发起方:** 后端
**接收方:**前端控制窗口
**接收方:** 前端控制窗口
**数据类型:**`Controls`
**数据类型:** `Controls`
### `both.styles.set`
**介绍:**后端将最新字幕样式发送给前端,前端进行设置
**介绍:** 后端将最新字幕样式发送给前端,前端进行设置
**发起方:**后端
**发起方:** 后端
**接收方:**前端
**接收方:** 前端
**数据类型:**`Styles`
**数据类型:** `Styles`
### `both.captionLog.add`
**介绍:**添加一条新的字幕数据
**介绍:** 添加一条新的字幕数据
**发起方:**后端
**发起方:** 后端
**接收方:**前端
**接收方:** 前端
**数据类型:**`CaptionItem`
**数据类型:** `CaptionItem`
### `both.captionLog.upd`
**介绍:**更新最后一条字幕数据
**介绍:** 更新最后一条字幕数据
**发起方:**后端
**发起方:** 后端
**接收方:**前端
**接收方:** 前端
**数据类型:**`CaptionItem`
**数据类型:** `CaptionItem`
### `both.captionLog.set`
**介绍:**设置全部的字幕数据
**介绍:** 设置全部的字幕数据
**发起方:**后端
**发起方:** 后端
**接收方:**前端
**接收方:** 前端
**数据类型:**`CaptionItem[]`
**数据类型:** `CaptionItem[]`