C#LRC的标题歌词怎么加在播放器中

//存储歌词时间
List listTime = new List();
//存储歌词
List listLrc = new List();
void FormatLrc(string[] lrcText)
{

        for (int i = 0; i < lrcText.Length; i++)
        {
             //[00:46.88]雨都停了 这片天 灰什麽呢
            //lrcTemp[0]  00:46.88 
            //lrcTemp[1] 雨都停了 这片天 灰什麽呢
            string[] lrcTemp = lrcText[i].Split(new char[]{ '[',']' }, StringSplitOptions.RemoveEmptyEntries);
            //将歌词存储到集合中去
            listLrc.Add(lrcTemp[1]);
            //将00:46.88变成 46.88
            //lrcnewTemp[0] 00
            //lrcnewTemp[1] 46.88
            string[] lrcnewTemp=lrcTemp[0].Split(new char[]{':'},StringSplitOptions.RemoveEmptyEntries);
            double time = double.Parse(lrcnewTemp[0])*60+double .Parse(lrcnewTemp[1]);
            //46.88
            //将最终截取到的时间扔到listTime中
            listTime.Add(time);


        }

    }

6个回答

请采纳!!

你看一下lrc的预定义标签

[ar:艺人名]

[ti:曲名]

[al:专辑名]

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

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

注意这些和歌词标签不同:

[00:00.50]蔡健雅 - 依赖

你会读了吗,用正则表达式或者简单的startsWith就可以判断,读出来,你想怎么展示都行。

ly363307578
沉默的_欲望 不是每个歌词都有这些header的
5 年多之前 回复

什么叫标题歌词????

gsky1986
foreach_break 回复沉默的_欲望: 你自己也列出来了,按标记读出来,显示到标题栏或者任何你想展示的地方
5 年多之前 回复
dumbbirdvip
dumbbirdvip 回复沉默的_欲望: [ti:转身之后] [ar:Bii] [al:222589] [offset:0] 这相当于LRC的header,一般是不显示在播放器中的,或者直接读取,然后固定在播放器的某一个位置。总之是与带时间标签的滚动歌词区分显示。
5 年多之前 回复
ly363307578
沉默的_欲望 [ti:转身之后] [ar:Bii] [al:222589] [offset:0] 比如这个 歌词正式开始的时候有这些
5 年多之前 回复
ly363307578
沉默的_欲望 [ti:转身之后] [ar:Bii] [al:222589] [offset:0] 比如这个 歌词正式开始的时候有这些
5 年多之前 回复

LRC本身就是一个文本文件,读取了按照时间顺序显示就可以了
http://download.csdn.net/detail/ai6307663/3063659
http://blog.csdn.net/www314599782/article/details/6400034

关键是你获取播放器当前播放时间,然后根据lrc文件获取对应时间段的歌词信息,显示。

请采纳!

正则:\[ar.*?\]|\[ti.*?\]|\[al.*?\]|\[by.*?\]|\[offset.*?\]

图片说明

不甚感激图片说明图片说明图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐