大师好,我们是爱学啊,今天给大师带来一篇关于LRC歌词道理和在Android上若何实现歌词逐行滚动的结果,逐字滚动下一篇文章讲解。
东西/原料
- Android Studio
结果图
- 1
相信大师都懂一张图胜过千言万语。
- 2
结果和此刻市道上年夜部门播放器差不多,当然若是要运用到贸易项目中,必定还需要进行一些优化,例如:滚动结果有弹性,字体巨细,字体颜色等。
什么是LRC歌词
- 1
LRC是英文Lyric(歌词)的缩写,常用作逐行歌词扩展名。他是纯文本文件,格局简单,能实现歌词逐行滚动;当然今朝业界年夜部门播放器都是在他的根本上心猿意马制了,但根基道理一样,当学完我们这篇文章后,大师也可以按照本身的需求心猿意马制。
LRC歌词格局
- 1
在实现歌词功能前,必定需要搞大白LRC歌词格局,例如:我们找了一段LRC歌词:
- 2
可以看到内容是用换行符朋分的,若是这些数据是经由过程接口返回,而不是直接返回一个LRC文件,那么这里面的换行符应该变为\n换行符,这一点我们也在课程中讲解到了。
每一行是一句歌词;每一行歌词又分为两部门,中括号里面是当前这行歌词的起头时候,格局为分:秒:毫秒,有些歌词可能没有毫秒,只有秒;歌词开首因为部门数据称为LRC元数据,他是用来描述这个歌词的,部门字段诠释如下:
- 3
前面这些字段按照分歧的播放器可能用的位置纷歧样,我们课程中固然解析了这些字段,但也没有效到。
歌词滚动道理
- 1
将每行歌词前面的时候解析后,转为毫秒,如许播放器在播放的时辰可以获取到播放时候,然后拿着时候查找当前时候对应哪一行歌词,然后在界面上高亮这一行歌词,或者做更多的处置,例如:字体增年夜等操作;就实现了歌词逐行高亮;至于滚动分歧的平台纷歧样,滚动思绪是:获取到当前时候所对应哪一行,然后我们必定能算出每一行歌词高度,所以行*每一行高度就是滚动的高度。
歌词解析
- 1
分歧的说话语法纷歧样,我们这里先说思绪,我们的实现是Java说话。
读取该文件每一行,然后用]拆分,第二部门就是歌词,第一部门继续用:拆分,然后将三部门转为毫秒;最后将这些信息保留到对象上。
当然为了今后更好的扩展,因为歌词格局良多,可以进行一些架构:
歌词绘制
- 1
分歧的平台也纷歧样,我们这里是Android,所以绘制用Canvas。我们这里的思绪是:歌词View的高度是固心猿意马的,因为我们但愿当前行歌词始终显示到歌词View中心,所以先算出View的中间高度,然后在该位置绘制当前行歌词,这一步按照分歧的歌词处置的逻辑也纷歧样,但歌词可分为两类,一类是逐行,一类是逐字,对于逐行来说就直接绘制就行了,只是颜色,巨细纷歧样罢了;逐字下一节讲解;然后从当前行歌词位置像前绘制歌词,直到超出View顶部为止,在从当前行歌词标的目的下歌词绘制,直到超出View底部为止;当前你可以利用LinearLayout添加所有歌词当前容器内,然后滚动。
歌词滚动
- 1
Android中分歧的实现方式滚动体例也纷歧样,若是是直接绘制,那么滚动其实就是绘制分歧行歌词,给人的感受就是滚动了;若是是将所有歌词添加到容器中,那么就可以利用容器默认的滚动;对于我们这里的实现滚动其实就是更改lineNumber值,例如;当前lineNumber为5,暗示当前播放的是第5行歌词,经由过程用户滚动的距离就能计较出当前滚动距离是哪一行,因为我们知道每一行高度所以可以计较出当前位置,滚动到的位置,然后利用属性动画滚动:
- 2
到这里LRC歌词View焦点功能根基就实现完当作了,若是要深切进修可以查看我们的【[Android开辟项目实战我的云音乐](http://a.ixuea.com/o)】课程,或者在线电子书【[电子书](http://a.ixuea.com/K)】;同时大师也可以存眷我们的微信公家号【ixuea666】和Android开辟交流QQ群:702321063。
来源:百闻(微信/QQ号:9397569),转载请保留出处和链接!
本文链接:https://www.ibaiwen.com/web/217875.html
- 上一篇: 华为新品发布Mate 20与Mate 20 Pro的区别
- 下一篇: wow 激流堡副本怎么去
- 热门文章
-
WB蒙特利尔(WB Montreal)——欧美十大最差视频游戏开发商
迅猛龙(Velociraptor)——欧美史前十大死亡动物
什么是果酱猫(What Marmalade Cats)?
神奇蜘蛛侠2(The Amazing Spider-Man 2)——欧美最佳蜘蛛侠电影
希瑟(Heather)——欧美十大最佳柯南灰歌
二人梭哈
奥兹奥斯本(Ozzy Osbourne)——欧美十大高估歌手
faceu激萌怎么把瘦脸开到最大
什么是小脑前下动脉(Anterior Inferior Cerebellar Artery)?
我应该知道康涅狄格州的什么(What Should I Know About Connecticut)?
- 热评文章
- 最新评论
-
- 最近访客
-
- 站点信息
-
- 文章总数:200248
- 页面总数:9
- 分类总数:1
- 标签总数:0
- 评论总数:0
- 浏览总数:497