| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1660 人关注过本帖
标题:MP3歌词展开程序-(增加了从MP3中自动获取歌词功能)
只看楼主 加入收藏
jmasm
Rank: 1
等 级:新手上路
威 望:1
帖 子:368
专家分:0
注 册:2006-9-24
收藏
 问题点数:0 回复次数:8 
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]]

cccc.JPG (60.34 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


MP3歌词格式化.rar (3.13 KB)


cccc.JPG (69.35 KB)
图片附件: 游客没有浏览图片的权限,请 登录注册


MP3歌词格式化.rar (4 KB)


桂花雨-梦里飞歌.rar (754.92 KB)


桂花雨-梦里飞歌.rar (754.91 KB)
收到的鲜花
  • 永夜的极光2008-11-10 09:34 送鲜花  49朵   附言:原创内容
搜索更多相关主题的帖子: MP3 歌词 
2008-11-09 20:13
multiple1902
Rank: 8Rank: 8
等 级:贵宾
威 望:42
帖 子:4881
专家分:671
注 册:2007-2-9
收藏
得分:0 
哎呀 我当时做的时候忘了regexp了……
2008-11-09 20:46
三断笛
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:31
帖 子:1621
专家分:1617
注 册:2007-5-24
收藏
得分:0 
哎.......我也一样忘了  不过那玩意没学好 用的也少../...
2008-11-09 21:12
jmasm
Rank: 1
等 级:新手上路
威 望:1
帖 子:368
专家分:0
注 册:2006-9-24
收藏
得分:0 
我也没学好与此正则 表达式
你看我这个验证时间帧格式
[02:46.98]
[01:20.31]
的表达式为
[\[][\d][\d][\:][\d][\d][\.][\d][\d][\]]
写得太丑陋了
2008-11-09 21:17
abc5566
Rank: 1
等 级:新手上路
帖 子:201
专家分:0
注 册:2007-9-15
收藏
得分:0 
好东西,下了看看学习....谢谢
2008-11-10 00:56
lll930720
Rank: 1
等 级:新手上路
帖 子:41
专家分:0
注 册:2006-11-14
收藏
得分:0 
先收了,慢慢学习学习.
2008-11-10 07:37
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
程序写的很好,先加分,顺便占个位置,晚些时候来提点意见

秉承先表扬后批评的精神,先说优点
1.实现了自动获取歌词的功能,这个很强大
2.代码格式工整,注释还算完整
3.变量名和函数名基本上可以望文生义,容易阅读
4.使用了正则表达式这一强大的工具

但是和优点对应的,也存在着一些不足
1.我怎么就没找到自带歌词的mp3呢?我觉得你最好能随软件附赠一首自带歌词的mp3,要好听的哦
2.注释还是少了点,特别是分析mp3格式的那一段,一个注释也没有,我想你可能是参考别人的代码,而别人的代码里面没注释,所以你也没有,但是我觉得这一部分是你这个程序的难点,注释应该写一些的,至少应该把你看的那些资料照抄一些下来,否则过段时间后,可能你自己也看不懂了
3.窗体名,控件名,还有工程名,都是默认的,这样看起来不是很好
4.这个表达式实在不行,我写了一个,你参考一下
\[([01]\d|2[0-3]):[0-5][0-9].[0-5][0-9]]

然后是一些语法上的
1.VB中的结构体是可以直接赋值的,所以你的swap函数没必要写那么长
    tmptf = myTF(s1)
    myTF(s1) = myTF(s2)
    myTF(s2) = tempTF
2.分割每行的时候,其实有更方便的方法,就是用split函数,你可以自己找找看这个函数的用法
3.同样,在合并字符串的时候,有个速度快得非常多的函数,Join
4.弹出打开文件对话框的时候,最好先设置一下默认的Filter,指定只能打开mp3作为扩展名的文件

嗯,应该说完了,以上是我自己的一些想法,可能有些也不是很对,你可以“择其善者而从之”

[[it] 本帖最后由 永夜的极光 于 2008-11-10 10:37 编辑 [/it]]

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-11-10 09:36
永夜的极光
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:2721
专家分:1
注 册:2007-10-9
收藏
得分:0 
我找不到带歌词的mp3,自己写了一个,怎么没展开呢?
[01:02.03]aaa
[02:03.04][3:03.34]bbb


哦,知道了,原来少写了一个0,改成
[01:02.03]aaa
[02:03.04][03:03.34]bbb

就可以了

[[it] 本帖最后由 永夜的极光 于 2008-11-10 09:54 编辑 [/it]]

从BFS(Breadth First Study)到DFS(Depth First Study)
2008-11-10 09:45
jmasm
Rank: 1
等 级:新手上路
威 望:1
帖 子:368
专家分:0
注 册:2006-9-24
收藏
得分:0 
非常感谢永夜的极光,你提的意见太宝贵了.
晚上我把程序改了再上传一个

分析mp3格式的那一段,是我参考网上的资料边看边用UE调试出来的.

在顶楼我上传了一首嵌入了歌词的mp3
2008-11-10 13:45
快速回复:MP3歌词展开程序-(增加了从MP3中自动获取歌词功能)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017369 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved