架构¶
lyrics-core 的架构设计围绕着单向数据流转换:输入 -> 解析器 -> 模型 -> 导出器 -> 输出。
核心组件¶
模型¶
应用中使用的核心数据结构。
SyncedLyrics:根容器。包含行列表、元数据(标题、艺术家)和 ID。ISyncedLine:歌词行的接口。SyncedLine:代表标准行,具有开始时间和内容。KaraokeLine:代表卡拉OK行,包含音节级的时间信息 (KaraokeSyllable)。
解析器¶
负责将原始字符串或字节流转换为 模型。
ILyricsParser:所有解析器的通用接口。LrcParser:解析标准.lrc文件。KugouKrcParser:解析加密或纯文本的.krc文件。TTMLParser:解析基于 XML 的 TTML(常用于 Apple Music)。AutoParser:门面类 (Facade),尝试猜测格式并使用合适的解析器。
导出器¶
负责将 模型 转换回特定的字符串格式。
ILyricsExporter:通用接口。LrcExporter:将SyncedLyrics转换为 LRC 字符串。TTMLExporter:将SyncedLyrics转换为 TTML XML。
工具¶
用于时间解析、编码/解码和格式猜测的辅助类。
数据流向¶
graph LR
A[原始内容] --> B{AutoParser}
B --> F[SyncedLyrics]
F --> D{Lyrics UI}
F --> G{导出器}
G --> H[输出]