歌词同步的实现(lrc)
来源:互联网 发布:telnet 80 端口打不开 编辑:程序博客网 时间:2024/05/01 09:30
lrc是一种开放的文件格式,用来实现歌词和音乐的同步显示。用文字编辑器打开lrc文件会很容易发现,几乎每行都包含有如[*:*]的格式,称之为标签。标签分为两种,一种如[3:12.78]类的称为时间标签,表示与音乐同步的时间,精确到0.01秒;另一种如[ar:xxx]类的称为标识标签,表示一些附加的信息,如歌曲家,歌词编辑者等等,没特别需要,将其忽略。
所以,同步主要是对时间标签的处理。我的步骤如下:
1、由于lrc文件本身不大,将其一次性读入内存
2、由于lrc每行为歌词的一行内容,讲lrc文件分解为每行的内容
3、对各行处理,获得时间,歌词内容
4、按照时间的先后顺序排序,做成一张按时间从小到大的表
5、正常常音乐播放时,获取当前播放时间与当前时间表节点比较,当大于当前节点时间时,显示下条歌词,时间节点下移一个节点
6、拖动进度条播放时,定位播放时间和表中的时间节点,显示相关条目
用到的主要数据结构和方法:
总结:用链表方法来保存歌词比较复杂,拖动播放时歌词定位效率不高(即使可以通过一些简单的时间点判断来提高效率),但总的来说,还没有到影响显示效果的程度。可以考虑利用数组来保存歌词条目,这样就可以用二分法等一些有效率的算法来提高效率,呵呵,当然有利也有弊,预留数组的大小会浪费一些内存,如果文件过大而预留大小过小会造成内存访问非法的操作。LRC定位歌词不像KRC那样高,可以精确到每个字,而且还包含一些专辑图片等信息。(看来多思考一步,多向前走一步,就是另外一片天地啊!)
- 歌词同步的实现(lrc)
- VB2005使用类实现LRC歌词同步
- Android开发----lrc歌词的同步展示
- LRC 歌词同步
- 实现 LRC歌词滚动
- Android自定义View来实现解析lrc歌词并同步滚动、上下拖动、缩放歌词的功能[转]
- 我的Android进阶之旅------>Android自定义View来实现解析lrc歌词并同步滚动、上下拖动、缩放歌词的功能
- android MusicPlayer 音乐播放器 Lrc歌词控件的实现
- 网页中LRC歌词同步显示
- android 音乐播放器-------歌词同步 lrc
- Android中解析lrc歌词 同步歌曲
- Lrc歌词格式的简介
- LRC歌词
- 《菊花台》的歌词LRC文件
- 查找lrc歌词的一个方法
- c# 操作Lrc歌词文件 的类
- Android解析lrc里的歌词
- vc 用结构体实现对歌词lrc的读取和显示
- 多语句值 == 最后的语句的值
- 99
- 导出整个数据库
- 开博
- VC中调用EXECL模板生成报表
- 歌词同步的实现(lrc)
- 算术移位与逻辑移位有什么区别?
- 创业公司的“四不五缺”!
- 解析吉祥宝贝的作弊方法(原创)
- 软件开发者面试百问-----在散列表和排序后的列表中找一个元素,哪个查找速度最快?
- Excel在vc中怎么操作单元格的字体、颜色、加线框(和异常的抛出)
- .NET开发资源站点和部分优秀.NET开源项目
- 解决方案: 远程网页如果是用 content-encoding: inflate,怎样用JAVA解压缩
- 不是绝版了,就是英文的