2013-06-25 27 views
5

Tôi đang cố lưu các thẻ id3 nghệ sĩ và tiêu đề mới vào các bản nhạc. Tải các thẻ từ các bài hát hoạt động tốt, cũng là tiêu đề chỉnh sửa cho bản nhạc đang hoạt động tốt. Nhưng khi tôi cố gắng chỉnh sửa biểu diễn(nghệ sĩ) nó không thay đổi bất cứ điều gì. Đây là mãTagLib sắc nét không chỉnh sửa nghệ sĩ

public void renameID3(string artist,string title) 
{ 
    using (TagLib.File f = TagLib.File.Create(FInfo.FullName)) 
     { 
      f.Tag.Artists[0] = artist; //Both of them are not ... 
      f.Tag.Performers[0] = artist; //working 


      f.Tag.Title = title; //This works fine 
      f.Save(); 
     } 
    } 

Cộng với tôi trông definiton của FirstPerformerFirstPerformer thành viên của lớp TagLib nhưng họ không có bất kỳ phương pháp quy định. Bất cứ ai cũng biết cách giải quyết vấn đề này?

Trả lời

7

Bị mắc kẹt với cùng một vấn đề. Thấy rằng thanh toán bù trừ Performers đầu tiên làm cho nó hoạt động như mong đợi:

using(TagLib.File tlFile = TagLib.File.Create(newFileName)){ 
    //tlFile.Tag.Performers = new []{translateDict[author]}; //doesn't work 
    tlFile.Tag.Performers = null; //clearing out performers 
    tlFile.Tag.Performers = new []{translateDict[author]}; //works now 
    tlFile.Save(); 
} 
+0

Bạn là người đàn ông tốt nhất! Rất cám ơn –

+0

Bạn không cần bước '= null'. Vấn đề là Performers, et al trở lại * new * mảng để chỉnh sửa nó không thay đổi cấu trúc dữ liệu cơ bản. Nó thực sự nên trả lại một số điện thoại IE, nhưng tôi còn trẻ và liều lĩnh. –

+0

@BrianNickel Bạn có thể vui lòng giải quyết vấn đề: http://stackoverflow.com/questions/35414734/cant-add-image-keywords-if-there-were-no-keywords-to-begin-with-taglib-sharp/35421960 # 35421960 –

1
TagLib.File f = TagLib.File.Create(yourFile); 
f.Tag.AlbumArtists = new string[] { "Artist 1", "Artist 2", ... }; 
0

này đã làm việc cho tôi:

TagLib.File file = TagLib.File.Create (fname); 
file.Tag.Performers = new String[1] { artist }; 
file.Save(); 
Các vấn đề liên quan