浅谈动感歌词-歌词生成篇
1引言
在写这生成篇时,我还是在烦恼应该是先写歌词解析篇,还是先写歌词生成篇,后来我想一想,其实还是要先有歌词文件,才有解析嘛,当然,我们也可以通过现有的歌词(krc、trc和ksc等)直接跳过这一步,直接解析歌词即可。
2制作软件
这里介绍一下《小灰熊卡拉ok字幕制作软件》,我们可以通过一些专业的制作软件,来理清和弄懂歌词的制作原理。这里先上个截图:
由图和软件制作歌词的使用教程,我们可以知道如下信息:
1.歌词以行为单位制作,逐【字】制作
2.在制作歌词时,软件似乎已经把每一行歌词的【字】都分割好了,应该是为了后面方便制作歌词,所以预先把行歌词分割成每一个【字】,这里的【字】包括:英文单词、数字串、中文,其中空格【只能】与英文单词、数字串或者中文组成一个【字】,且空格的位置要放在后面
3.在制作歌词的过程中,音乐响起,听到行歌词中的【字】时,就按一下【空格】,这里按一下【空格】,其实应该就是记录该【字(A)】的出现时间,当按下下一个【字(B)】或者换行时,那就可以记录【字(A)】的持续时间
4.歌词换行,则记录行歌词的开始时间
5.歌词制作完成后,则根据歌词格式,生成对应歌词文件
注:第2和第3点是实现制作歌词的重点,如无法理解,则无法制作歌词。
3自实现制作软件
知道制作歌词的原理后,我们就要动手自己编写和实现制作歌词软件,这里我采用Java Swing来编写一个桌面程序,界面方面参考酷狗实现。
3.1API
Java Swing:Graphics2D.setClip。当然也有Android的,后面的博客会说到。
由图可知,Graphics2D在绘画文本时,先画默认颜色的歌词文本,再设置clip层的长度宽度,然后再绘画【高亮】歌词文本,只要我们不断地修改clip层的宽度,就是我们想要的动感歌词效果了。当然我们在制作歌词时,只需要设置渐变递增宽度为每个【字】的宽度就可以了。
3.2实体类设计
3.2.1歌词实体、行歌词实体、标签实体
采用《浅谈动感歌词-歌词分析篇》里的实体类,制作歌词时,生成的数据,会保存到,歌词实体(LyricsInfo)里面,方便歌词的预览和生成。
3.2.2歌词文件生成器
这个类的作用,就是为了方便后面拓展支持多种动感歌词格式。
3.2.3HRCX歌词生成器
3.3界面
3.3.1录入歌词
3.3.2制作歌词
思路:
1.大概就是将【录入歌词】的歌词文本,进行行分割
2.获取行歌词后,对歌词的内容进行分析,并进行【字】分割
3.播放歌曲,按下【左右箭头】和【空格】制作歌词
4.分割部分代码:
5.界面
注:紫色,是已完成。红色,表示正在生成。
3.3.3制作完成
3.4歌词生成
部分代码,文件后缀名:hrcx
3.5歌词效果预览
4参考
卡拉OK歌词实现
注:这个是好像是Android的视频教程,我也是从这个视频的原理来找到Java Swing的API的。
5源码
乐乐音乐
注:这是我用Java Swing写的一个PC音乐播放器
6最后
下一篇,将介绍动感歌词的解析。如有侵权,麻烦告知。
转载于:https://my.oschina.net/u/437124/blog/822546
浅谈动感歌词-歌词生成篇相关推荐
- 浅谈动感歌词:hrc歌词
hrc歌词 hrc是英文happy lyrics的缩写,是乐乐音乐播放器中自定义使用的歌词文件扩展名,它的歌词显示是精确到每个字,并且除了包含歌曲.歌手信息等信息还包含音译歌词和翻译歌词. 格式 基本 ...
- 浅谈动感歌词-歌词分析篇
1引言 关于动感歌词,我们都不陌生,最常见的就是去唱K时,MV上面的歌词,还有就是酷狗.天天动听和QQ音乐等播放器的歌词,它们都是属于动态歌词,它们都是精确到每个[字],这大大提高了用户的体验.如果一 ...
- 浅谈动感歌词-歌词补充篇
1引言 之前写了几篇关于动感歌词的简单介绍,相信大家还有印象,这里就不多说了,这篇要说的是,关于翻译歌词和音译歌词,以及我在解析和显示这两种歌词的时候,遇到的一些难题.技术和心得. 2动感歌词格式 下 ...
- 浅谈动感歌词-歌词解析篇
1引言 要解析动感歌词文件,首先就要清楚动感歌词的文件内容,当然歌词的文件内容,我们已经在分析篇的文章里面介绍过了,这里将不再做详细的介绍,当我们可以把歌词成功解析出来后,再结合歌词生成篇,一个简单的 ...
- 浅谈动感歌词:网易云歌词分析
1引言 HPLyrics歌词解析库虽然是乐乐音乐播放器中的一个歌词模块,但是目前已经支持lrc.ksc.krc.hrc等歌词格式的动感显示.最近有读者反映该开源库能否支持网易云歌词,如果要支持网易云歌 ...
- 处理数码照片的计算机需要配置,不仅要懂PS 浅谈修图电脑配置(基础篇)
[IT168 导购]电脑是重要的摄影周边附件.伴随高像素.高速连拍.高清视频的发展,摄影也已成为大家更新电脑的重要推动力.ET准备用3篇文章向大家介绍修图电脑的相关知识,这一篇是基础篇,后面还有针对台 ...
- 浅谈如何使用canvas生成二维码
适用于新手不知道怎么生产二维码,按照步骤一步一步来,自己也可以生成二维码 1.引入需要得js库 引入jquery <script src="http://libs.baidu.com/ ...
- 智能车浅谈——17届极速越野篇
文章目录 前言 备赛准备 车模 硬件 软件 整车原理 赛道信息获取及转向原理 GPS模块 惯导模块 转向原理 代码部分 惯导数据处理 舵机误差值计算 误差值的PID处理 总结 前言 本期我们就来讲讲关 ...
- [ 浅谈web网站验证码生成方案之一 ]
1.前言 web系统注册登录界面存在验证码验证信息已不再是新鲜事,现在的验证码生成策略有很多种,以往有单纯数字.单纯字母.字母数字组合.现在出现一些中文验证和图片验证. 要想了解中文验证和图片验证是如 ...
最新文章
- php在函数使用正则表达式,php正则表达式以及正则函数的使用
- Python OpenCV分水岭算法分割和提取重叠或有衔接的图像中的对象
- Windows Server2012 搭建域错误“本地Administraor账户不需要密码”
- 关于java.math.BigDecimal的操作(亲测)
- ASP.NET Core on K8S深入学习(10)K8S包管理器Helm-Part 2
- Hadoop学习总结(2)——Hadoop入门详解
- 《统一沟通-微软-实战》-3-部署-Exchange 2010-3-证书-创建-导入-分配
- erp服务器维护数据备份,erp服务器备份
- 正则表达式相关:C# RichTextBox显示html文本内容
- c语言编辑游戏时用哪个软件,我想用C语言编写一个小型游戏,使用什么软件
- python+django天天生鲜超市购物系统
- Matlab使用mosek
- web前端入门到实战:CSS3中width值为max/min-content及fit-content的理解
- 我的世界修改服务器头像,我的世界头像
- [转载] 白酒基础知识
- Android之按钮点击事件——显示图片隐藏图片
- python爬虫之Scrapy框架,基本介绍使用以及用框架下载图片案例
- 局域网内2台ubuntu电脑共享鼠标键盘
- 蓝牙模块芯片型号有哪些?国产还是进口?核心指标有哪些
- 300题目 第10讲 积分等式与积分不等式