Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
引言
该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显示效果,其项目地址如下:乐乐音乐播放器。
实现功能
歌词解析和生成
支持krc、ksc、lrc歌词格式
hrc歌词:乐乐音乐播放器自定义的动感歌词格式,如需制作歌词(支持动感歌词、翻译歌词和音译歌词制作),可点击链接查看:Hrc歌词制作器(乐乐音乐播放器PC版)
歌词格式可自行扩展和相互转换
双行歌词
不支持lrc格式歌词的显示
支持动感歌词、翻译歌词和音译歌词的显示
歌词颜色渐变方面,主要是参考酷狗PC版桌面歌词的颜色【蓝-白-蓝】
支持歌词字体大小、字体包、颜色、歌词换行等功能
多行歌词
支持lrc、krc和hrc等动感歌词的显示
支持动感歌词、翻译歌词和音译歌词的显示
歌词颜色透明度渐变、歌词平滑移动、歌词快进
支持歌词字体、颜色、歌词换行等功能
动感歌词的翻译歌词,可分为lrc和动感(默认)两种方式绘画显示
预览图
主界面
歌词文件读取并预览
双行歌词-动感歌词
双行歌词-音译歌词
双行歌词-翻译歌词
多行歌词-lrc歌词
多行歌词-动感歌词
多行歌词-音译歌词
多行歌词-翻译歌词
多行歌词-快进
实现思路
歌词解析器和生成器
该项目对支持的krc、ksc、lrc和hrc歌词格式,都封装了两个类,一个类(LyricsFileReader)是用来读取歌词文件并解析歌词内容的,另外一个类(LyricsFileWriter)是用来生成歌词文件,用户可自行扩展歌词格式。
其中,歌词解析和生成只要用了正则表达式和字符串分隔来实现。
关于歌词的格式内容和标签,可点击链接查看,也可以在浏览器上输入关键字“浅谈动感歌词”进行搜索,我之前写了“浅谈动感歌词”系列来简单说明我对动感歌词的一些看法:浅谈动感歌词-歌词分析篇、浅谈动感歌词-歌词生成篇、浅谈动感歌词-歌词解析篇、浅谈动感歌词-歌词显示篇、浅谈动感歌词-歌词补充篇
翻译歌词和音译歌词构建
翻译歌词和音译歌词里的字时间,只要从原始的歌词里面的字时间集合里重构,由于翻译歌词的字数和原始歌词不一定对应,所以翻译歌词每个字的渐变时间,为该行歌词时长除于字总数的平均值。具体可参考:浅谈动感歌词-歌词补充篇
动感歌词渐变效果
API:canvas.clipRect
双行歌词上下颜色渐变
API:LinearGradient,目前设置了上下颜色渐变,颜色是平均分布。
歌词刷新优化
注意:从Handler.postDelayed(Runnable, 0)到Runnable里面的执行是有消耗时间的。
旧版思路:乐乐音乐之前是通过线程每隔100ms便通过发送广播将歌曲的播放进度发给歌词类,让它去刷新歌词的内容,从而达到歌词与歌曲对应的效果,不过这几天优化的时候发现,每隔100ms更新并通过handler进行刷新时,其实还需要考虑handler从发送到执行请求时,所消耗的时间已经不止100ms,加上广播过于频繁,这应该就是乐乐音乐的歌词在渐变的时候不太流畅的原因。
现在思路:乐乐音乐播放器加载完成歌词后,需要从player中将当前歌曲的播放进度(playProgress)传给歌词,之后歌词类便操作这个播放进度值(playProgress)去刷新界面,这里的思路是:每隔1ms,播放进度(playProgress)便要添加1ms。由于handler每次从发送到执行时,需要消耗时间,这里我直接使用该消耗时间作为播放进度的增加值,对歌词界面进行刷新,从而达到歌词与歌曲对应的效果。
个人感觉,如果想歌词更新流畅,用C来实现,效果应该会比较好
类似的,歌曲的进度条显示也可以使用该种方法。
源码
具体的代码和调用Demo,可到源码地址处查看:
Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
传送门
乐乐音乐播放器-Android
Hrc歌词制作器(乐乐音乐播放器PC版)
扩展
歌词格式转换器
歌词文件生成视频
最后
如果有问题,可到github上面留言。
作者:只有一条尾巴的猫
链接:https://www.jianshu.com/p/9e7111db7b41
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果相关推荐
- android歌词效果,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...
- android仿酷狗界面,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
简介 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...
- android 渐变歌词,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
引言 该开源依赖库是乐乐音乐播放器里的一个歌词模块功能,现在把该功能模块独立出来进行优化,并弄成了一个开源依赖库,其它音乐播放器项目只要引用该库并调用接口,便可轻松实现与乐乐音乐播放器一样的动感歌词显 ...
- Android仿酷狗SlidingMenuLayout界面实现
引言 该SlidingMenuLayout主要实现了左边侧边栏.主界面和多个Fragment功能.该控件主要是参考酷狗界面的功能,左侧菜单可设置缩放动画,及打开多个Fragment功能.该控件在后期会 ...
- 乐乐音乐H5网页版-支持krc歌词(动感歌词、翻译和音译歌词)
# 简介 # 乐乐音乐H5网页版主要是基于uni-app框架开发的音乐播放器,目前只支持krc歌词(支持歌词颜色.字体大小.歌词进度调整和翻译和音译歌词),不支持歌词快进功能. # 环境配置 # ...
- 乐乐音乐5.0-全面支持翻译和音译歌词
更新日志 支持翻译歌词和音译歌词 新增歌曲下载功能 图片预览 音译歌词 翻译歌词 简介 乐乐音乐5.0主要是基于ijkplayer框架开发的Android音乐播放器,它支持多种音频格式和动感歌词,界面 ...
- Android歌词制作,Android动感歌词制作器(支持翻译和音译歌词)
引言 之前PC版本已经实现了动感歌词.翻译歌词和音译歌词的制作,便想着找个时间,把PC版本的功能移植到Android手机平台上面.经过一周的努力,终于实现了,界面虽然简陋,但是大部分的功能已经实现.为 ...
- Android动感歌词制作器(支持翻译和音译歌词)
引言 之前PC版本已经实现了动感歌词.翻译歌词和音译歌词的制作,便想着找个时间,把PC版本的功能移植到Android手机平台上面.经过一周的努力,终于实现了,界面虽然简陋,但是大部分的功能已经实现.为 ...
- Android仿酷狗音乐自定义侧滑菜单控件简单实现
随着Android的不断成熟,许多绚丽的效果也在不断的被大家开发出来,其中侧滑的效果用到的项目很多,用的好的更是给吸引了很多用户.国内像QQ和酷狗App的侧滑就很给力,所以查了一些资料,并结合View ...
最新文章
- 中国剩余定理与扑克游戏
- 输入的命令集锦(补充)
- python 抓取“煎蛋妹子图”并分页存在本地(普通版和多线程版)
- 2、Flutter 的安装和idea配置
- 在Elasticsearch中索引Java Bean的简单方法
- maven打包报错You have to use a classifier to attach supplemental artifacts to the project instead of rep
- light7在微信ios下input点击困难
- 第三章EF的基本使用 EF数据实体模型的更新
- asp.net执行js出现“已终止操作”的解决方法
- HDX(CITRIX ICA)与ICA
- Weblogic 下载
- 浅谈端上智能之计算优化
- react native 更改app名称和图标
- Html中所有的a标签点击打开新的窗口
- android实现自动触摸,Android编程开发之多点触摸(Multitouch)实现方法
- centos界面的转换+快捷键的使用
- 晋商到底是怎么生与死的?
- 服务器配置参数主要有哪些
- android颜色透明度换算详解
- 暴走英雄坛服务器维护,《暴走英雄坛》4月29日更新公告