2010-02-20 16 views
10

Obecnie używam TagLib Sharp zgodnie z sugestią w jednym z wpisów @ stackoverflow do czytania id3-Tag z plików mp3, flac, ogg i podobnych plików multimedialnych .. teraz po prostu zdałem sobie sprawę, że id3v2 (może nawet v1) obsługuje niestandardowe znaczniki, ale nie mogę znaleźć implementacji do odczytu/zapisu niestandardowych znaczników w TagLib Sharp. Czy ktoś wie o bibliotece obsługującej pola niestandardowe?C# ID3 biblioteka obsługująca niestandardowe pola

Christian

--- Aktualizacja 20100422 ---

Wciąż szukają .. znaleźć na tej stronie:

http://id3.org/Implementations

+3

Jeśli nie znajdziesz, zalecam złożenie żądania funkcji z Sharp projektu TagLib. – Foole

+0

Dobry pomysł, pomyślę o tym! /christian –

+0

Witaj, czy to zostało kiedykolwiek znalezione? – Fedaykin

Odpowiedz

1

Ten artykuł na codeproject posiada bibliotekę, która obsługuje każdy rodzaj znaczników (w tym niestandardowych znaczników). Używałem go dawno temu, ale pamiętam, że obsługuje on tagi niestandardowe. Ale myślę, że TagLib jest bardziej solidny.

http://www.codeproject.com/KB/cs/Do_Anything_With_ID3.aspx

3

Można spróbować dodać nową ramkę (zamiast całego nowego niestandardowego tagu). Jako przykład, jeśli chcesz dodać nową „Acoustid Duration” TXXX ramce istniejącego pliku * .mp3, można użyć taglib-sharp library i coś podobnego

Dim MyTaglibMP3 As TagLib.File = TagLib.File.Create("C:\temp\I'm Alive.mp3") 
Dim id3v2tag As TagLib.Id3v2.Tag = CType(MyTaglibMP3.GetTag(TagLib.TagTypes.Id3v2), TagLib.Id3v2.Tag) 
Dim AcoustidDurationTXXXFrame As New TagLib.Id3v2.UserTextInformationFrame("Acoustid Duration", TagLib.StringType.UTF16) 
AcoustidDurationTXXXFrame.Text = {"207"} 
id3v2tag.AddFrame(AcoustidDurationTXXXFrame) 
... 
MyTaglibMP3.Save() 
MyTaglibMP3.Dispose() 

oczywiście, to działa z każdym innym już zdefiniowana Typ id3v2 jak "KomentarzeFrame", "PrivateFrame", "TextInformationFrame", a nawet "UnsynchronisedLyricsFrame".

Jeśli nie chcesz, aby id3v2tag zostaną zakodowane UTF-16, wybierz inny TagLib.StringType