2008-09-16 17 views

cevap

168

Thirding TagLib Sharp.

TagLib.File f = TagLib.File.Create(path); 
f.Tag.Album = "New Album Title"; 
f.Save(); 
+2

+1. Tam ihtiyacım olan şey. – David

+1

Sanatçı özelliğinin nasıl ayarlanacağını bana kimse anlatabilir mi? Bir çok ilgili özellik var (FirstArtist, Artist, JointedArtists, FirstPerformer) ve hemen hemen hepsi salt okunur ya da kullanımdan kaldırılmış ... – Laserson

+3

Biraz geç, ancak aşağıdaki sanatçıları/sanatçıları ekleyebilirsiniz: mp3.Tag .Performers = new string [] {"Performer 1", "Performer 2", "Performer 3"}; – nokturnal

15

TagLib Sharp ID3 etiketlerini okumak için desteği vardır.

+0

Burada tavsiye tabanlı keskin TagLib kullanmaya başladı ve (salt okunur hangi MP3 bilgi) Uygulamam için harika çalıştı. – greg7gkb

+0

+1. Tam ihtiyacım olan şey. – David

+0

Yeni bağlantı konumu için hewins'in yanıtına bakın. –

62

TagLib Sharp oldukça popüler. bunu kendiniz yaparak hızlı bir ve kirli göz atmanız istiyorsa bir yan not olarak

, .. burada # Bir mp3'ler etiket bilgileri okumak için buldum pasajı bir C'dir.

class MusicID3Tag 

{ 

    public byte[] TAGID = new byte[3];  // 3 
    public byte[] Title = new byte[30];  // 30 
    public byte[] Artist = new byte[30]; // 30 
    public byte[] Album = new byte[30];  // 30 
    public byte[] Year = new byte[4];  // 4 
    public byte[] Comment = new byte[30]; // 30 
    public byte[] Genre = new byte[1];  // 1 

} 

string filePath = @"C:\Documents and Settings\All Users\Documents\My Music\Sample Music\041105.mp3"; 

     using (FileStream fs = File.OpenRead(filePath)) 
     { 
      if (fs.Length >= 128) 
      { 
       MusicID3Tag tag = new MusicID3Tag(); 
       fs.Seek(-128, SeekOrigin.End); 
       fs.Read(tag.TAGID, 0, tag.TAGID.Length); 
       fs.Read(tag.Title, 0, tag.Title.Length); 
       fs.Read(tag.Artist, 0, tag.Artist.Length); 
       fs.Read(tag.Album, 0, tag.Album.Length); 
       fs.Read(tag.Year, 0, tag.Year.Length); 
       fs.Read(tag.Comment, 0, tag.Comment.Length); 
       fs.Read(tag.Genre, 0, tag.Genre.Length); 
       string theTAGID = Encoding.Default.GetString(tag.TAGID); 

       if (theTAGID.Equals("TAG")) 
       { 
        string Title = Encoding.Default.GetString(tag.Title); 
        string Artist = Encoding.Default.GetString(tag.Artist); 
        string Album = Encoding.Default.GetString(tag.Album); 
        string Year = Encoding.Default.GetString(tag.Year); 
        string Comment = Encoding.Default.GetString(tag.Comment); 
        string Genre = Encoding.Default.GetString(tag.Genre); 

        Console.WriteLine(Title); 
        Console.WriteLine(Artist); 
        Console.WriteLine(Album); 
        Console.WriteLine(Year); 
        Console.WriteLine(Comment); 
        Console.WriteLine(Genre); 
        Console.WriteLine(); 
       } 
      } 
     } 
+11

Bu yalnızca ID3v1 içindir. v2 başka bir yapıya sahiptir, dosyanın başlangıcında (sonunda v1'in tersi) ve değişken uzunluğa sahiptir (v1 her zaman 128 bayttır). – jishi

+2

+1. Tam ihtiyacım olan şey. – David

+0

Benim için çalışmıyor :( –

25

UltraID3Lib ...

//using HundredMilesSoftware.UltraID3Lib; 
UltraID3 u = new UltraID3(); 
u.Read(@"C:\mp3\song.mp3"); 
//view 
Console.WriteLine(u.Artist); 
//edit 
u.Artist = "New Artist"; 
u.Write(); 
+0

+1 Bu, şimdiye kadarki en iyi kütüphanedir - 'UltraID3Lib, belirtilen yetmiş dört çerçeve türünün çoğunu desteklediğinden ID3 v2.3' de erken ID3V1 etiketleri. En iyi cevap. – James

+0

1 Bu kadarını kullanımı daha kolay ve ben son zamanlarda bu kullanılan mp3 meta verileri – amrswalha

+1

başa basit yoludur ve bu harika çalışıyor ve değil Burden sürecini yapar Kullanımı hızlı ve kolaydır ve ID3 sürüm 1 ve 2'de bulunan her etiket için hesap yapar (hem bir kerede hem de yalnızca birini veya diğerini kullanabilirsiniz). İhtiyaç duyduğumdan çok şey yapar. comprehe nsive yardım dosyası. Bunu herkese tavsiye edeceğim. – fredsbend

2

MP3 kod çözücü kitaplığı sardım ve .net geliştiricileri için kullanıma hazır hale getirdim. Burada bulabilirsiniz: Dahil

http://sourceforge.net/projects/mpg123net/

PCM mp3 dosyasını dönüştürmek ve ID3 etiketlerini okumak için örneklerdir.

1

ID3.NET ID3v1.x ve ID3v2.3 uygulanmış ve MP3 dosyaları ID3 bölümünde okuma/yazma işlemlerini destekler. Ayrıca bir NuGet package mevcuttur.

0

Sadece bir yerlere belgelemek:

Ben .NET Çekirdek işe yaramadı onu (id3lib ve daha fazla) yapmak .NET Çekirdek 2. diğer seçenekler için TagLib-Sharp yeniden derlemek başardı.

İlgili konular