目前还没有一种包含歌词的标准音频格式,于是各厂家都推出了自己的支持歌词同步的播放器,但由于格式不兼容,导致用户必须下载专用的音乐播放器才能播放歌词,更有甚者,对自己设计的歌词格式加密。真是乱上加乱,给第三方音乐播放器兼容制造困难,硬生生的绑架用户用自己的音乐播放器。这是何等的短视和不要脸行为,并且十分不利于自家歌词格式的普及推广和标准化,为这些所谓的中国暴发户网络巨头脸红10分钟。
针对以上乱象,试图设计一种标准支持歌词同步的音乐格式,有利于统一各家标准,如果能被html规范吸收引用,也可以集成到浏览器内部编译,避免嵌入第三方播放器。
文件格式:*.mus *为文件名,mus为文件格式,比如: 青花瓷.mus
规范:
标签:<music>
引用: <music> ……</music>
//说明:音乐文件必须包含在<music>内,才能被播放器识别
属性:无
包含标签:所有标签
标签:<head>
说明:包含音乐头信息
属性:无
必须:必须
引用:<head> ...</head>
引用方法一:
<head>歌名,作词,作曲,主角,伴奏,乐器,分类,制作,时间</head>
说明:可以省略子标签,中间用逗号隔开,此方法不能忽略换行和前后空格,如果包含换行和前后空格,可能引起编译器错误或被编译器忽略。
引用方法二:
<head>
<子标签1>...</子标签1>
<子标签n>...</子标签n>
</head>
子 标 签:<歌名> <作词> <作曲> <主角> <伴奏> <乐器> <分类> <制作> <时间> <备注>
是否必须:其中 <歌名><主角><制作><时间> 是必须的,其他子标签可选
说明:其中<作词> <作曲> <主角> <伴奏> <乐器> <分类> <制作> 可以是多选项,中间用空格隔开 例如:<主角>周杰伦 刘德华</主角>
标签:<data>
说明:存放音频数据
属性:url,type code="utf-8"(可选)
必须:必须
引用:<data> ...</data>
说明:data用于存放音频数据,默认格式是mp3,如果data里面没有数据则编译器会从url链接下载,如果url为空或错误且data里面没数据,则停止播放
示例:<data url="http://",type="mp3",code="utf-8"> 此处放MP3数据</data>
子标签:无
标签:<lrc>
说明:包含同步歌词
属性:typenum 非必须,默认=1
必须:必须
引用:<lrc> ...</lrc>
说明:存放同步歌词
示例:<lrc typenum=1> 此处放MP3歌词数据</lrc>
子标签:<line type=1,typename="男",#ffffff,#ffffff>
子标签属性说明:type值不能大于lrc typenum声明的个数,例如<lrc typenum=2>,则最多有<line type=1>和<line type=2>
如果声明type属性,则必须声明typename属性,后面ffffff是初始颜色和演出颜色。如果不写,则编译器自己匹配自己的颜色
其他说明:语法规则和注释参考html5吧,就跟他一样了。以上只是一个框架,还没有具体完善,后期再慢慢完善。希望有能力的大网站能推广推广,促进音乐格式的统一
示例:<music>
<head>
<歌名>青花瓷</歌名>
<作词>周杰伦 刘若英</作词>
<作曲>周杰伦 刘若英</作曲>
<主角>周杰伦 刘若英</主角>
<伴奏>周杰伦 刘若英</伴奏>
<乐器>唢呐 笛子</伴奏>
<分类>供搜索引擎和播放者参考和自己分类</分类>
<制作>出品人</制作>
<时间>2015-01-01</时间>
<备注>出品人</备注>
</head>
<data url="http://",type="mp3">
</data>
<lrc typenum=3,url="http://">
<line type=1,typename="男",ffffff,ffffff> //代表一行
<000,000>aaaa</000> //具体某个字或词,距离开始播放的毫秒数
<000,000>aaaa</000>
</line>
<line type=1,typename="女",ffffff,ffffff>
<000,000>aaaa</000>
<000,000>aaaa</000>
</line>
</lrc>
</music>
暂时记录一下灵感,后期再完善