从MP3中提取歌曲信息(C#)

本文介绍了如何使用C#编程语言从MP3文件中提取歌曲的元数据,包括歌名、歌手、专辑等信息。通过读取MP3文件末尾的128个字节并解析结构,可以实现自动为MP3文件重命名的功能。
摘要由CSDN通过智能技术生成

#1  从MP3中提取歌曲信息(C#)


作者:game.19xz 来源:19xz.com 

 

       一首MP3歌曲除了音乐信息外,还包含了如歌名、演唱者等信息,当我们用winamp软件听音乐时,播放清单就自动将这些信息读出来。大部分人都喜欢从网上下载音乐,但下载下来的MP3文件名都是文件上传系统自动取名的,和歌曲本身根本不相符,所以,给用户带来了很大的麻烦。但是,懒人有懒人的做法,我们何不自己写一个程序,将歌曲信息自动读出来并为MP3文件自动更名呢?

 

       下面我就以C#为工具,把开发过程写出来。

 

       一首MP3的额外信息存放在文件的最后面,共占128个字节,其中包括以下的内容(我们定义一个结构说明):

       public struct Mp3Info

        {

            public string identify;//TAG,三个字节

            public string Title;//歌曲名,30个字节

            public string Artist;//歌手名,30个字节

            public string Album;//所属唱片,30个字节

            public string Year;//年,4个字符

            public string Comment;//注释,28个字节

 

            public char reserved1;//保留位,一个字节

            public char reserved2;//保留位,一个字节

            public char reserved3;//保留位,一个字节

        }

 

       所以,我们只要把MP3文件的最后128个字节分段读出来并保存到该结构里就可以了。函数定义如下:

              /// <summary>

        /// 获取MP3文件最后128个字节

        /// </summary>

        /// <param name="FileName">文件名</param>

        /// <returns>返回字节数组</returns>

        private byte[] getLast128(string FileName)

        {

            FileStream fs = new FileStream(FileName,FileMode.Open,FileAccess.Read);

            Stream stream = fs;

 

            stream.Seek(-128,SeekOrigin.End);

 

            const int seekPos = 128;

            int rl = 0;

            byt

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值