在寫這生成篇時,我仍是在煩惱應該是先寫歌詞解析篇,仍是先寫歌詞生成篇,後來我想想,其實仍是要先有歌詞文件,纔有解析嘛,固然,咱們也能夠經過現有的歌詞(krc、trc和ksc等)直接跳過這一步,直接解析歌詞便可。git
這裏介紹一下《小灰熊卡拉ok字幕製做軟件》,咱們能夠經過一些專業的製做軟件,來理清和弄懂歌詞的製做原理。這裏先上個截圖:github
由圖和軟件製做歌詞的使用教程,咱們能夠知道以下信息:app
1.歌詞以行爲單位制做,逐【字】製做spa
2.在製做歌詞時,軟件彷佛已經把每一行歌詞的【字】都分割好了,應該是爲了後面方便製做歌詞,因此預先把行歌詞分割成每個【字】,這裏的【字】包括:英文單詞、數字串、中文,其中空格【只能】與英文單詞、數字串或者中文組成一個【字】,且空格的位置要放在後面設計
3.在製做歌詞的過程當中,音樂響起,聽到行歌詞中的【字】時,就按一下【空格】,這裏按一下【空格】,其實應該就是記錄該【字(A)】的出現時間,當按下下一個【字(B)】或者換行時,那就能夠記錄【字(A)】的持續時間視頻
4.歌詞換行,則記錄行歌詞的開始時間教程
5.歌詞製做完成後,則根據歌詞格式,生成對應歌詞文件ip
注:第2和第3點是實現製做歌詞的重點,如沒法理解,則沒法制做歌詞。get
知道製做歌詞的原理後,咱們就要動手本身編寫和實現製做歌詞軟件,這裏我採用Java Swing來編寫一個桌面程序,界面方面參考酷狗實現。源碼
Java Swing:Graphics2D.setClip。固然也有Android的,後面的博客會說到。
由圖可知,Graphics2D在繪畫文本時,先畫默認顏色的歌詞文本,再設置clip層的長度寬度,而後再繪畫【高亮】歌詞文本,只要咱們不斷地修改clip層的寬度,就是咱們想要的動感歌詞效果了。固然咱們在製做歌詞時,只須要設置漸變遞增寬度爲每一個【字】的寬度就能夠了。
採用《淺談動感歌詞-歌詞分析篇》裏的實體類,製做歌詞時,生成的數據,會保存到,歌詞實體(LyricsInfo)裏面,方便歌詞的預覽和生成。
這個類的做用,就是爲了方便後面拓展支持多種動感歌詞格式。
思路:
1.大概就是將【錄入歌詞】的歌詞文本,進行行分割
2.獲取行歌詞後,對歌詞的內容進行分析,並進行【字】分割
3.播放歌曲,按下【左右箭頭】和【空格】製做歌詞
4.分割部分代碼:
5.界面
注:紫色,是已完成。紅色,表示正在生成。
部分代碼,文件後綴名:hrcx
注:這個是好像是Android的視頻教程,我也是從這個視頻的原理來找到Java Swing的API的。
注:這是我用Java Swing寫的一個PC音樂播放器
下一篇,將介紹動感歌詞的解析。若有侵權,麻煩告知。