MP3歌词展开程序-(增加了从MP3中自动获取歌词功能)
如图所示,这个程序的功能就是按时间帧展开歌词[02:46.98][01:20.31] 这种多重时间帧标记支持的播放软件不多(千千静听支持),
为了在其他软件中也能正确识别歌词,所以专门制作了这个展开多重时间帧的程序。
刚刚更新:
增加了从MP3中自动获取歌词功能
为了完成这个功能,在网上找了些资料学习了下,总算完成了。
在制作过程中遇到几个问题,感觉很郁闷,让我调试程序到现在才完工,所以专门说一下
1.最初我获取歌词后为了查看是不是正确的,就用MSGBOX把歌词显示出来。
这时发现有些歌词不完整,怀疑找到的USLT歌词标签的长度不对,
就用UE打开MP3文件分析后得到正确的长度,然后在程序中调试发现USLT标签的长度值是正确的。
但程序找不到其他的问题了,就怀疑MSGBOX是不是不能显示很长的字符串,用TEXTBOX一显示,
确实如此,调试半天 ,原来是这个问题
2. 初次得到歌词后我转换的是UNICODE编码,是乱码,找了很久资料,试着用vbwide宽字符解析,
结果倒是正常了,不过都成了宽字符,阿拉伯数字显示有问题,如下面
[01:19.10]会不会这颗心再找不到 归航的流浪
[01:30.14]穿过爱情的海洋 才发现自己 并不是天使
[01:35.81]孤单的感觉 也许和你一样
[01:39.16]是失落 是沮尚 是回忆 是彷徨...
又是调试很久,最后用vbNarrow解析正常
StrConv 函数
--------------------------------------------------------------------------------
返回按指定类型转换的 Variant (String)。
语法
StrConv(string, conversion, LCID)
StrConv 函数的语法有下面的命名参数:
部分 说明
string 必要参数。要转换的字符串表达式。
conversion 必要参数。Integer。其值的和决定转换的类型。
LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)
设置值
conversion 参数的设置值为:
常数 值 说明
vbUpperCase 1 将字符串文字转成大写。
vbLowerCase 2 将字符串文字转成小写。
vbProperCase 3 将字符串中每个字的开头字母转成大写。
vbWide* 4* 将字符串中单字节字符转成双字节字符。
vbNarrow* 8* 将字符串中双字节字符转成单字节字符。
vbKatakana** 16** 将字符串中平假名字符转成片假名字符。
vbHiragana** 32** 将字符串中片假名字符转成平假名字符。
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。
vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页
就这样了,不啰嗦了
下面是才上传的工程文件
传了一首mp3上来
[[it] 本帖最后由 jmasm 于 2008-11-10 13:51 编辑 [/it]]
MP3歌词格式化.rar
(3.13 KB)
MP3歌词格式化.rar
(4 KB)
桂花雨-梦里飞歌.rar
(754.92 KB)
桂花雨-梦里飞歌.rar
(754.91 KB)