专辑插图未编码

本文关键字:编码 专辑 | 更新日期: 2023-09-27 18:20:20

尝试创建一个供个人使用的mp3嵌入程序。在StackO上尝试了所有的解决方案,但都没有成功。

这是我所拥有的:

TagLib.File tagFile = TagLib.File.Create("C:''Users''Dom''Desktop''song.mp3");
TagLib.Id3v2.AttachedPictureFrame pic = new TagLib.Id3v2.AttachedPictureFrame();
pic.TextEncoding = TagLib.StringType.Latin1;
pic.MimeType = System.Net.Mime.MediaTypeNames.Image.Jpeg;
pic.Type = TagLib.PictureType.FrontCover;
pic.Data = TagLib.ByteVector.FromPath("C:''Users''Dom''Pictures''picture.png");
tagFile.Tag.Pictures = new TagLib.IPicture[1] { pic };
tagFile.Tag.Album = "Album 1";
tagFile.Tag.Year = 1990;
tagFile.Save();   

相册标签和年份标签在属性下显示良好,程序没有崩溃或引发任何错误。图片不会显示为文件图标,也不会显示在windows媒体播放器中。图片大小是300x300像素,如果这很重要的话。

专辑插图未编码

原因可能与现有的ID3v2标签有冲突。这样修复:

    TagLib.File tagFile = TagLib.File.Create("C:''Users''Dom''Desktop''song.mp3"); 
    Tag t = tagFile.GetTag(TagTypes.Id3v2);
    tagFile.RemoveTags(TagTypes.Id3v2); 
    Tag tags = tagFile.GetTag(TagTypes.Id3v2);
    tagFile.GetTag(TagTypes.Id3v2, true); 
    tagFile.Save();
    tagFile = TagLib.File.Create("C:''Users''Dom''Desktop''song.mp3"); 
    tags = t;
    tagFile.GetTag(TagTypes.Id3v2).Pictures = new IPicture[] { 
    new Picture("C:''Users''Dom''Pictures''picture.png") 
       { MimeType = "image/png", Type = PictureType.FrontCover } 
    };
    tagFile.Tag.Album = "Album 1";
    tagFile.GetTag(TagTypes.Id3v2).Track = 0;
    tagFile.Tag.Year = 1990;
    tagFile.Save();