网页
资讯
视频
图片
知道
文库
贴吧
地图
采购
进入贴吧
全吧搜索
吧内搜索
搜贴
搜人
进吧
搜标签
日
一
二
三
四
五
六
签到排名:今日本吧第
个签到,
本吧因你更精彩,明天继续来努力!
本吧签到人数:0
一键签到
可签
7
级以上的吧
50
个
一键签到
本月漏签
0
次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行
补签
。
连续签到:
天 累计签到:
天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
06月21日
漏签
0
天
五点二十一刻钟吧
关注:
2,233
贴子:
320
看贴
图片
吧主推荐
游戏
6
回复贴,共
1
页
<返回五点二十一...吧
>0< 加载中...
【教程】简单的LRC滚动歌词匹配技巧
只看楼主
收藏
回复
五点二十一刻钟
人中龙凤
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这方面对于播放器开发的朋友可能会有帮助吧。
另外,关于在线获取Lrc歌词的方法,可以参见这个帖子
http://tieba.baidu.com/p/4187196758?pid=79832119403&cid=0#
送TA礼物
1楼
2016-02-26 13:18
回复
五点二十一刻钟
人中龙凤
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
所谓的Lrc歌词,就是这种 时间戳+歌词 形式的一种文本文件
对于这种文件的解析,可以把每一行分离,当做字符串分解,截取等。变成我们需要的资源。
2楼
2016-02-26 13:25
回复
收起回复
五点二十一刻钟
人中龙凤
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
对了。这里先说一下,我所做的滚动歌词制作的原理是
1:先把lrc歌词每一行 提取放进键值对 KeyValuePair<int,string> 里,int存储换算成秒的时间,string存对应时间的对应歌词;然后用泛型集合List< KeyValuePair<int,string>> 存储整首歌的所有歌词信息;
2:把当前播放的歌的时间 换算成 秒为单位的整型数字,假设一首歌长度为4分钟,就是240秒。
3:然后每隔一秒就检测歌词,如果符合当前时间戳内,就提取出当前时间段内的歌词进行显示。
(当然,实际情况可能一秒不止一句歌词,所以就要减小间隔,我一般是100毫秒检测一次)
3楼
2016-02-26 13:47
回复
收起回复
五点二十一刻钟
人中龙凤
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
下面具体说说步骤:
1)先把歌词文本读入到字符串数组中,这个没啥说的,有现成的方法:
我们的目的是将每行的 时间戳和对应歌词 提取出来,以 键值对 形式储存起来
2)通过观察,一般的LRC歌词文本是这种 一个时间戳 对应一句歌词:如
但是,也有这种多个时间戳 对应一句歌词:如
前者可以以 [ ] 等标记,用字符串切割方式分解,但是后者就比较麻烦了。
所以这里采用 正则表达式进行 匹配。这样就可以用循环来解决多个时间戳的问题了。
4楼
2016-02-26 14:09
回复
收起回复
五点二十一刻钟
人中龙凤
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
这个是具体的提取过程:
通过运行上面的方法,便可以得到提取过后的歌词信息:如
5楼
2016-02-26 14:41
回复
收起回复
五点二十一刻钟
人中龙凤
11
该楼层疑似违规已被系统折叠
隐藏此楼
查看此楼
通过运行上面的方法,便可以得到提取过后的歌词信息:
通过断点调试可以看到,每一句都是以KeyValuePair<int ,string> 形式储存起来了。
但是由于存在 多个时间戳 对应 一句歌词 的情况,所以,整个List<>集合其实是无序的,所以我们还要再排个序,以便后面 调取歌词 的时候方便。
List泛型集合也是自带排序方法的,可以直接调用Sort()方法,通过指定以键值对 KeyValuePair<int ,string> 中的int,也就是键(Key) 进行排序。
排序过后如下:
可以发现,经过以时间排序过后的歌词集合,已经可以正常显示了。
至此,歌词的提取部分就完成了。
6楼
2016-02-26 14:51
回复(1)
收起回复
登录百度账号
扫二维码下载贴吧客户端
下载贴吧APP
看高清直播、视频!
贴吧热议榜
1
歌手2024第七期直播
2133810
2
阿里全球数学决赛形式为线上闭卷
1992068
3
一如既往满足您对生活品质的追求
1595272
4
Manner被曝第3起店员与顾客冲突
1210059
5
博主收读者杂志律师函后道歉
916240
6
台独分裂犯罪最高可判死刑
835575
7
疾地吧年专评选大赛
668784
8
罗小黑主创正式道歉
651797
9
今年入学中科大能和图恒宇做同学
545798
10
各个位置对比赛的影响程度大小
476763
贴吧页面意见反馈
违规贴吧举报反馈通道
贴吧违规信息处理公示