Lrc歌词-开发标准

LRC歌词是在其程序当中实现的专门用于MP3等歌词同步显示的标签式的纯文本文件,如今已经得到了广泛的运用。现就LRC歌词文件的格式规定详细说明,已供程序开发人员参考。

LRC文件是纯文本文件,可以用记事本等文本编辑工具查看和编辑。LRC文件中大量使用这类似[*:*]以及[*:*.*]这样的标签,而且标签是无须排序的,除此之外的全是文字。

首先是一些说明性的标签,这些是一般都在文件的开头的,标签的标识是不区分大小写的,形式如下:

[ar:艺人名]

[ti:曲名]

[al:专辑名]

[by:编者](指编辑LRC歌词的人)

[offset:时间补偿值](其单位是毫秒,正值表示整体提前,负值相反。这是用于总体调整显示快慢的)

其次是时间标签以及其对应的文本,格式可能有以下几种:

[mm:ss.fff]******
[mm:ss]******

mm:分钟

ss:秒

fff:毫秒

大多数的歌词在做时间标签时将fff这个位只写两位ff,其意思是ff0,也就是降低了时间的精度。

一句文本也可以带有多个标签,格式如下:

[mm:ss.fff] [mm:ss.fff]…[mm:ss.fff]******
[mm:ss] [mm:ss]…[mm:ss]******

在开发相应的应用程序时应当考虑到各种的可能情况,灵活处理:

1、时间标签可能会出现不规则的表示方法入[0:0],程序应该能识别这种情况。

2、有可能在一行中会有多句带有时间标签的文本,甚至有可能出现一句文本跨行显示的情况。

3、有些设备不能识别[offset]这个标签。

时间: 2024-08-08 23:03:42

Lrc歌词-开发标准的相关文章

Java使用正则表达式解析LRC歌词文件

LRC歌词是一种应用广泛的歌词文件,对其进行解析时 标准格式: [分钟:秒.毫秒] 歌词 1 import java.io.BufferedReader; 2 import java.io.File; 3 import java.io.FileInputStream; 4 import java.io.InputStreamReader; 5 import java.util.ArrayList; 6 import java.util.HashMap; 7 import java.util.Li

我的Android进阶之旅------>Android自定义View来实现解析lrc歌词并同步滚动、上下拖动、缩放歌词的功能

前言 一LRC歌词文件简介 1什么是LRC歌词文件 2LRC歌词文件的格式 LRC歌词文件的标签类型 1标识标签 2时间标签 二解析LRC歌词 1读取出歌词文件 2解析得到的歌词内容 1表示每行歌词内容的实体类LrcRow 2解析歌词的构造器 ILrcBuilder接口 DefaultLrcBuilder歌词解析构造器 lrc歌词原始内容 lrc歌词解析后的内容 三显示LRC歌词内容 1定义一个ILrcViewListener接口 2定义一个ILrcView接口 3自定义一个LrcView 同步

c++下lrc歌词文件检索(自己写的检索歌词文件,记录点滴)

贴上一个文档,是写这个程序的基本的思路,当然具体的程序和这个有一些出入,但是大体上一样.求批评指正. /*目标:在一个文件夹下吧所有的lrc歌词文件用程序导入,进行分析,最后的结果用TXT表示出来.*/ /*分析:只要建立了倒排索引就可以很容易把歌词的索引文件输入到il.txt中,所以应当有一个函数实现输入倒排索引,而后建立文件输出txt: 0.bool Lyricsindex_out(Lyric_index_list index_list[],int m ){} //相关的有: struct

lrc歌词文件格式

一.lrc文件有什么作用 lrc文件就是一个文本文件,用来记录歌曲的歌词信息,使得播放歌曲时能够让歌词与声音同步显示,类似于电影字幕那种效果. 心情很丧时我们会听首歌陶冶一下情操,不知你是否注意过音乐播放软件播放音乐时歌词信息,这是酷我音乐的歌词播放界面: 当前正在播放的这一句歌词会被高亮显示,从上面这幅图我们能够看出来,这个歌词文件至少记录了什么时间播放哪一句歌词,这些信息都是放在lrc文件中的,一个lrc文件的格式大致如下: [al:本歌所在的唱片集][ar:演出者-歌手][au:歌詞作者-

OC lrc歌词解析

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) {     FILE* fp1;//定义文件指针用于读文件     char* fp2;//用来判断是否歌词读完     char s[80];//暂存歌词     long int time2=0;     long int time=0;//用来计算时间,精度为秒,不够完善,望高人指点     int a=1;//起判断作用     fp1=f

服务器端二次开发标准事务保存数据

二次开发中,常常会调用平台事务保存数据,今天整理了标准格式的度量平台数据保存或SQL执行语句,格式如下:             //获取要保存数据表的表结构             Table table1 = service.GetTableStruct("default", "DELIT_TASK_LIST");             Table table2 = service.GetTableStruct("default", &qu

小程序歌词展示,格式lrc歌词

代码: wxml: <view class="page"> <view class="lrc" style="margin-top:{{marginTop}}px;height:{{lrcHeight}}px"> <block wx:for="{{lry}}" wx:key=""> <view class="lry {{currentIndex == in

MongoDB硬件及开发标准规范

大数据平台部 运维研发组             说明:   无特殊情况,均以此文档为参考文件搭建,如有特殊情况,需与运维研发组和开发组商议后进行更改. MongoDB 标     题硬件标准及研发规范   目  录 第1章 MongoDB配置标准规范.................................................................................. 1 1.1           MongoDB版本选择..............

如何避免游戏软件开发标准的不确定性

游戏行业常见的合作模式是由一方负责研发.升级及维护游戏软件,另一方作为游戏软件开发的独家代理商,负责该游戏的运营.推广.发行.使用.服务.在双方签署<软件开发合同>时,考虑到游戏软件本身的技术性和软件功能项.模块项的不确定性,往往对游戏软件的开发要求和标准不作具体约定,导致双方对合同履行产生争议,继而对簿公堂.笔者借本文谈谈自己的看法并提出解决方案,如何不让“友谊的小船”说翻就翻. 游戏上线流程图中各环节研发者和代理商的合同义务基本明晰,就是在第三个环节的“双方商议修改”涉及到需要研发者和代理