回 帖 发 新 帖 刷新版面

主题:给MP3文件改名(详细过程)

做这个MP3改名的东东也是很偶然!

    我们的单位是局域网共享上网的,整个系统有好几万的电脑通过系统总网出口,我们的电脑可以一天24小时在线,我们一些同事都喜欢狂下MP3,硬盘里下了很多很多MP3,管理起来很麻烦,有大部分MP3名字如果是01.mp3,但是用播放器放的时候能看到歌曲名,所以他们要先听,然后看看MP3里面有没有包含歌曲信息,有的话就复制下来重命名,没有就自己输入!几十首、100首以内改都还是很简单,太多就麻烦了,有个同事边改边对我说,如果点鼠标就能自己改就好了!
    我用QB做文件调用模块的时候想到了这个事情,我想,既然播放器能知道歌曲的名字、歌手的名字,那么这个MP3文件里面应该有相应的信息,我在这个文件里应该能找得到这个信息,而且应该是在这个文件的开始或者是结尾,不大可能在别的位置,
    我开始试验,先找个已知的MP3实验,比如刀狼的情人,我用2进制方式打开这个MP3文件,(open “qingren.mp3”for binary as#1)从文件的开始到最后搜索情人,一开始就找到了,在这个MP3的第10个字节处就是名字,第一个字节里有ID3这个关键字,然后我就修改文件里的情人这两个字符,改成好人,然后启动MP3播放器,看看显示有没有变化,结果我吃惊,播放器显示的信息并没有变成好人,难道。。。。。
     我继续搜索,在MP3文件的最后128个字节里又找到了情人,修改后用播放器一放,果然就是这里,原来放在后面啊,在这里有个关键字是TAG,然后30个字节放着歌曲名字情人血,在后面的30个字节放着歌手名字刀狼,我又找了个没有文件信息的MP3,先备份,然后手动填加歌手名、歌曲名、专集名,完了以后用QB打开两个文件进行比较,最后发现改后的文件多了128个字节,和刚刚做的结果一样,嘿,就是它了!
    知道这些以后,改名就很好做了,大家可以用SHELL来调用DOS改名,我用的不是这种方法,因为DOS最多只能有8个字符总共只有4个汉字,我自己做的是长文件改名,调用的是扩展INT21中断,可以支持255个长名字,大家有兴趣也可以研究一下,很简单的!
    MP3的文件都是好几M,你自己可以往里面可以放很多东西,比如QQ号码什么的放到 一个特定的位置,然后用的时候自己用程序解出来!

回复列表 (共2个回复)

沙发

不错。

我喜欢用UEDIT进行类似的分析。在那里也可以直接修改或者增加文件的内容,但对.exe之类的文件绝对不能增加,只能改写。

板凳

在这里给大家出一个题:

当前目录里有一大堆001.mp3、002.mp3之类的文件,另外还有一个文本文件,里面是文件名与歌名的对照,一行一个,中间用若干个空格分开。现在要求编一个程序,把所有的.mp3的主文件名改为歌名。

我来回复

您尚未登录,请登录后再回复。点此登录或注册