標籤:動手 info 寬度 介紹 開始時間 分代 效果 編寫 ogr
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最後
下一篇,將介紹動感歌詞的解析。如有侵權,麻煩告知。
淺談動感歌詞-歌詞產生篇