给MP3音乐文件写ID3信息和专辑封面

1.下载并引入ID3

连接: https://files.cnblogs.com/xdoudou/ID3.rar

2.代码示例

string filename = "F:\\Sleep Away.mp3";

string cover = "F:\\cover.jpg";

// 加载MP3 ID3Info info = new ID3Info(filename, true);

 

 

//重要如果ID3保存时引发 未引用对象到实例 异常 一定要加入下面两行代码

//设置是否开启ID3标签 true为开启 info.ID3v2Info.HaveTag = true;

//设置ID3版本,值有3和4  (ID3V2一般是3) info.ID3v2Info.SetMinorVersion(3);

/////////////////////////////////////////////////////////////////////

 

// 创建新封面 AttachedPictureFrame pic = new AttachedPictureFrame(    FrameFlags.FileAlterPreservation, "cover.jpg", TextEncodings.UTF_16, "",    AttachedPictureFrame.PictureTypes.Other,    new System.IO.MemoryStream(File.ReadAllBytes(cover)));

//注意上面创建新封面的时候 第一个参数要填 FrameFlags.FileAlterPreservation  才能兼容大部分播放设备 例如WP7 如果填 FrameFlags.Compression 则不支持

// 添加新封面到MP3中 info.ID3v2Info.AttchedPictureFrames.Add(pic);

 

// 设置其它属性 info.ID3v2Info.SetTextFrame("TIT2", "歌曲标题");

info.ID3v2Info.SetTextFrame("TPE1", "艺术家");

info.ID3v2Info.SetTextFrame("TALB", "专辑");

info.ID3v2Info.SetTextFrame("COMM", "备注");

// 保存到MP3中info.Save();

 

通过别人做好的类, 其实我们的工作已经非常简单, 有几点要说明一下:

1. 在 XP 中 MP3 文件的属性是 ID3v1 的版本, 在 win 7 是 ID3v2 的版本;

2. 更多的属性列表, 可以到 ID3 官方查看;

3. 在读取 ID3 属性的时候应该先判断是否存在 ID3 属性;

4. 专辑封面可以添加多张, 但播放器一般只会读取第一张, 所以要移除掉其它的;

原文URL:http://www.cnblogs.com/anakin/archive/2011/10/26/2224647.html

posted @ 2013-05-04 16:50  Xdoudou  阅读(1396)  评论(0编辑  收藏  举报