【问题标题】:Album artwork not encoding专辑封面未编码
【发布时间】:2016-02-02 20:31:08
【问题描述】:

尝试创建一个 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 像素(如果有任何重要性)。

【问题讨论】:

    标签: c# visual-studio-2010 taglib id3-tag


    【解决方案1】:

    原因可能是与现有的 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();
    

    【讨论】:

    • 我应该用什么替换“D:\\a.jpg”?我尝试使用我想要的封面图像的路径,以及您输入的确切内容,但两者都抛出错误。仍然不完全熟悉 taglib 库
    • 现在试试。我已经用你的路径正确地替换了路径。希望它有所帮助:)
    • 另外,再次复制并粘贴整个代码。我还做了另一个小修改。
    • 完美运行,非常感谢。一个星期以来一直在为这个挠头:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 2011-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多