发布网友 发布时间:2022-04-23 12:30
共1个回答
热心网友 时间:2022-05-15 14:32
展开1全部LRC 歌词是一种包含着“[*:*]”形式的“标签(tag)”的、基于纯文本的歌词专用格式。最早由郭祥祥先生(Djohan)提出并在其程序中得到应用。这种歌词文件既可以用来实现卡拉OK功能(需要专门程序),又能以普通的文字处理软件查看、编辑。当然,实际操作时通常是用专门的LRC歌词编辑软件进行高效编辑的。以下具体介绍LRC格式中的“标签”。时间标签(Time-tag)形式为"[mm:ss]"或"[mm:ss.fff]"(分钟数:秒数)。数字须为非负整数,比如"[12:34.5]"是有效的,而"[0x0C:-34.5]"无效。它可以位于某行歌词中的任意位置。一行歌词可以包含多个时间标签(比如歌词中的迭句部分)。根据这些时间标签,用户端程序会按顺序依次高亮显示歌词,从而实现卡拉OK功能。另外,标签无须排序。标识标签(ID-tags)其格式为"[标识名:值]"。大小写等价。以下是预定义的标签。[ar:艺人名] [ti:曲名] [al:专辑名] [by:编者(指编辑LRC歌词的人)] [offset:时间补偿值] 其单位是毫秒,正值表示整体提前,负值相反。这是用于总体调整显示快慢的。样例[ar:unknown] [ti:sample] [al:none] [by:me] [01:02.355][00:00]This line should be sung twice [00:05.7]And this one once only. 开发标准(供程序员阅读参考)以下列出了开发支持LRC格式的软件时应遵守的一些标准。无论是否在行首,行内凡具有“[*:*]”形式的都应认为是标签。(注意:其中的冒号并非全角字符“:”) 凡是标签都不应显示。 凡是标签,且被冒号分隔的两部分都为非负数,则应认为是时间标签。因此,对于非标准形式(非“[mm:ss]”)的时间标签也应能识别(如“[0:0]”)。 凡是标签,且非时间标签的,应认为是标识标签。 标识名中大小写等价。 为了向后兼容,应对未定义的新标签作忽略处理。另应对注释标签([:])后的同一行内容作忽略处理。 应允许一行中存在多个标签,并能正确处理。 应能正确处理未排序的标签。对歌词的处理:通过加载歌词文件字符串的方式加载,然后解析文本字符串。故歌词能否正常显示且更多的容错,解析很重要,这里也是通过切割文本的方法解析,然后排序。所以请大家使用标准格式的lrc文件,作者建议:1,尽量不要空行,或者仅时间标签而无内容2,一行一句歌词,可多个时间3,注意编码格式和换行格式,windows和linux的回车换行不一样,请用windows记事本打开查看无异常即可,比如有黑小框,空行,挤在一行等。