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

浅谈动感歌词-歌词生成篇相关推荐

  1. 浅谈动感歌词:hrc歌词

    hrc歌词 hrc是英文happy lyrics的缩写,是乐乐音乐播放器中自定义使用的歌词文件扩展名,它的歌词显示是精确到每个字,并且除了包含歌曲.歌手信息等信息还包含音译歌词和翻译歌词. 格式 基本 ...

  2. 浅谈动感歌词-歌词分析篇

    1引言 关于动感歌词,我们都不陌生,最常见的就是去唱K时,MV上面的歌词,还有就是酷狗.天天动听和QQ音乐等播放器的歌词,它们都是属于动态歌词,它们都是精确到每个[字],这大大提高了用户的体验.如果一 ...

  3. 浅谈动感歌词-歌词补充篇

    1引言 之前写了几篇关于动感歌词的简单介绍,相信大家还有印象,这里就不多说了,这篇要说的是,关于翻译歌词和音译歌词,以及我在解析和显示这两种歌词的时候,遇到的一些难题.技术和心得. 2动感歌词格式 下 ...

  4. 浅谈动感歌词-歌词解析篇

    1引言 要解析动感歌词文件,首先就要清楚动感歌词的文件内容,当然歌词的文件内容,我们已经在分析篇的文章里面介绍过了,这里将不再做详细的介绍,当我们可以把歌词成功解析出来后,再结合歌词生成篇,一个简单的 ...

  5. 浅谈动感歌词:网易云歌词分析

    1引言 HPLyrics歌词解析库虽然是乐乐音乐播放器中的一个歌词模块,但是目前已经支持lrc.ksc.krc.hrc等歌词格式的动感显示.最近有读者反映该开源库能否支持网易云歌词,如果要支持网易云歌 ...

  6. 处理数码照片的计算机需要配置,不仅要懂PS 浅谈修图电脑配置(基础篇)

    [IT168 导购]电脑是重要的摄影周边附件.伴随高像素.高速连拍.高清视频的发展,摄影也已成为大家更新电脑的重要推动力.ET准备用3篇文章向大家介绍修图电脑的相关知识,这一篇是基础篇,后面还有针对台 ...

  7. 浅谈如何使用canvas生成二维码

    适用于新手不知道怎么生产二维码,按照步骤一步一步来,自己也可以生成二维码 1.引入需要得js库 引入jquery <script src="http://libs.baidu.com/ ...

  8. 智能车浅谈——17届极速越野篇

    文章目录 前言 备赛准备 车模 硬件 软件 整车原理 赛道信息获取及转向原理 GPS模块 惯导模块 转向原理 代码部分 惯导数据处理 舵机误差值计算 误差值的PID处理 总结 前言 本期我们就来讲讲关 ...

  9. [ 浅谈web网站验证码生成方案之一 ]

    1.前言 web系统注册登录界面存在验证码验证信息已不再是新鲜事,现在的验证码生成策略有很多种,以往有单纯数字.单纯字母.字母数字组合.现在出现一些中文验证和图片验证. 要想了解中文验证和图片验证是如 ...

最新文章

  1. php在函数使用正则表达式,php正则表达式以及正则函数的使用
  2. Python OpenCV分水岭算法分割和提取重叠或有衔接的图像中的对象
  3. Windows Server2012 搭建域错误“本地Administraor账户不需要密码”
  4. 关于java.math.BigDecimal的操作(亲测)
  5. ASP.NET Core on K8S深入学习(10)K8S包管理器Helm-Part 2
  6. Hadoop学习总结(2)——Hadoop入门详解
  7. 《统一沟通-微软-实战》-3-部署-Exchange 2010-3-证书-创建-导入-分配
  8. erp服务器维护数据备份,erp服务器备份
  9. 正则表达式相关:C# RichTextBox显示html文本内容
  10. c语言编辑游戏时用哪个软件,我想用C语言编写一个小型游戏,使用什么软件
  11. python+django天天生鲜超市购物系统
  12. Matlab使用mosek
  13. web前端入门到实战:CSS3中width值为max/min-content及fit-content的理解
  14. 我的世界修改服务器头像,我的世界头像
  15. [转载] 白酒基础知识
  16. Android之按钮点击事件——显示图片隐藏图片
  17. python爬虫之Scrapy框架,基本介绍使用以及用框架下载图片案例
  18. 局域网内2台ubuntu电脑共享鼠标键盘
  19. 蓝牙模块芯片型号有哪些?国产还是进口?核心指标有哪些
  20. 300题目 第10讲 积分等式与积分不等式

热门文章

  1. opencv各版本与VS配置
  2. 爬虫日常-12306自动购票程序
  3. Linux第四章:1.Linux关机、重启、休眠、切换用户命令大全
  4. docx、ppt、xls、pdf文件转html(转)
  5. 面试重点——promise原理以及实现
  6. 人脸课堂签到管理系统(总结二) 摄像头显示
  7. Unity 陀螺仪姿态识别、 控制物体旋转移动
  8. linux|tgz解压出错
  9. 办公软件 Word2010 所有操作界面
  10. Shell(Bash)