Android解析歌词文件
上一篇文章《Android歌词文件格式》中,介绍了几种不同的歌词格式。
现在着手开始解析。
一、目标
设计数据结构,并实现解析歌词文件。
二、开源项目
项目 | 描述 |
---|---|
zhangliangming / HPLyrics | 非常强大的歌词解析项目。 支持lrc、krc、ksc、网易云音乐歌词、…… 非常完美! |
写完了歌词解析功能才发现这么好的开源项目。
可惜重新造了一次轮子!
三、设计思路
1. 歌词
歌词由2个部分组成,Lyric
和SongLyric
。前者是独立的歌词,后者由多个Lyric
组成,包括逐行歌词、卡拉OK歌词、翻译歌词、音译歌词等。
数据结构 | 描述 |
---|---|
Lyric |
歌词 |
SongLyric |
歌曲歌词 |
2. Lyric
歌词由2个部分组成,标签属性和歌词内容。
标签属性存放在Map
结构中,歌词还包括逐行歌词。
数据结构 | 描述 |
---|---|
LyricRow |
歌词行 |
LyricCell |
逐行歌词的基本单位 |
3. Builder
Builder
用来解析歌词。
有2种不同形式的歌词语法结构,分别为逐行和卡拉OK。
数据结构 | 描述 |
---|---|
LyricBuilder |
Builder基类 |
LineBuilder |
逐行歌词解析类 |
KalaokBuilder |
逐字歌词解析类 |
4. KalaokTransformer
考拉OK逐字歌词的实现方式各不相同,网易云音乐和酷狗音乐的逐字歌词结构不同。
KalaokTransformer
用来实现每行的具体解析。
数据结构 | 描述 |
---|---|
KugouTransformer |
酷狗音乐 |
NeteaseTransformer |
网易云音乐 |
5. Parser
用来解析对应的格式。
四、代码地址
稍做整理后,会上传到GitHub,请稍候。
五、Finally
须菩提。 所谓佛法者。即非佛法。