最近由于锻炼身体,女儿说了iPhone的GPS是秒定。终于受不了Android的半天定不了位,买了一个iPhone5s。除了Globe Position Setting以外,还找一个好用的学习软件,就是“朗易复读机”。 它支持上传LRC文件,很好用。由于业余时间也学习一下法语,因此想要做一些法语的LRC文件。在网上查找LRC编辑软件,不难找。但这些软件有一个致命的地方,它不支持其它语言。如法语的ç, 在LRC里就成了?。哪怕是在编辑时也会这样。
如leçon dix-sept , dis - septième leçon
就变成了
le?on dix-sept , dis - septième le?on
又在网上查了很多时间也没有解决的办法。只好自己摸索一下。
其实LRC文件没有什么神秘的地方。在记事本里用Unicode,直接保存为LRC,就能显示法语。
但获取和加入时间就成了大问题。
LRC文件的格式为:
[00:00:01] 第十四课 Leçon quatorze, quatrième leçon
[00:03:50] 1 A la cantine
[00:05:83] (Ilest midi. Nous sommes à la cantine de l‘institut )
[00:09:55] J‘aifaim,moi. Hmm......ça sent bon!
[00:12:72] Qu‘est-cequ‘il y a comme plats aujourd‘hui?
查看了许多软件,获取时间最好的是Premiere,但写入时间也是很麻烦的。于是想到还是自己拼装一个吧。
首先,要找到带代码的媒体播放器。找了很多,终于找到了一个,Mp3Play2.0还有快进和倒带,这是很多媒体播放器都不具备的!!真是天才!至少对我来说是这样。
赶快拼装吧!
思路是这样的:
一、编辑好歌词。就是type法语的课文。
二、断句。根据语音,做到课文与语音播放同步。
三、加入时间。根据语音把时间加入到LRC文件中。
首先是获取时间。Mp3Play2.0本身就有一个时间的获取,但只是秒单位的。LRC需要下一级是百分之一单位的时间,也就是100个单位时间进一秒。经试验,当timer的interval值为10时,使用position div10刚好可以是100个时间单位,也就是100个interval是一秒。
于是定义一个全局变量S,让它的取值为Position div 10,但安的值会随着时间的进程一直增加到几千,甚至上万。掉了几根头发后想到,为何不只取右两位?这样就会只显示1到99了。
rightstr(IntToStr(Position div 10),2),
好!这个问题解决了。
第二步就是要解决断句问题了。这个不难。在窗口里放一个memo控件就行了。
第三步就是加入时间。用数据表来做。首先是要连接一个数据库,SQL Server,Access都可以,建立一个临时表,把断好的句子加入到表中,根据课文语音加入时间就可以了。
第四步是做成LRC文件。这个只需在记事本里做就行。把加入了时间的课文(歌词)复制到记事本里,另存为Lrc文件。大功告成!!
感觉:Delphi博大精深,灰鸽子都是用它来写的,据说。把这些放在这里,只是记录一下一个业余爱好者的经历罢了!