TagLib

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von woeh.

    hallo,

    ich hoffe, dass mir jmd helfen kann ;(
    ich bin noch relativ neu in vb .net und habe ein projekt angefangen, das die TagLib-Sharp benutzt.
    auslesen & löschen, sowie schreiben der Standard-Tags funktioniert.

    jetzt das problem:
    wie komme ich an die extended Tags wie z.b. "Encoded by" und so.
    wie komme ich an den Header ?

    ich suche schon seit tagen im netz....ein paar code-schnipsel in c habe ich gefunden, aber wirklich weitergeholfen hat es nicht.

    kann mir jmd helfen ?

    1000 dank im voraus 8o

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „woeh“ ()

    TagLib & Frames

    hallo,

    ich bin jetzt soweit, dass ich mit TagLib an die frames komme....

    VB.NET-Quellcode

    1. Dim mp3 As TagLib.File = TagLib.Mpeg.File.Create("C:\01 - Opening.mp3")
    2. Dim Tag As TagLib.Id3v2.Tag = mp3.GetTag(TagTypes.Id3v2)
    3. Dim Frame As Object = Tag.GetFrames("TCOP")


    jedenfalls sehe ich in der ide, das der wert richtig ausgelesen wird....
    nur wie wandel ich das jetzt in einen $ um ?

    kann jmd helfen ?

    In das ursprüngliche Thema verschoben.
    Der blaue Button ist die Antwort, weiter links ist der Button "Neues Thema", welcher, so schätze ich, versehentlich verwendet wurde. ~Trade

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Trade“ ()

    Hab dasselbe Problem wie du und bin ehrlich gesagt auch ratlos.
    Also GetFrames returned natürlich ein Objekt, aber ein IEnumerable<TagLib.Id3v2.Frame>.

    Das hab ich dann iteriert um an jeden einzelnen Frame ranzukommen.
    Funzt soweit auch, bin an bis jetzt keine bessere Lösung gekommen nen Frame anhand seines Namens rauszusuchen als diese. Doch wie man dann an den Text kommt versteh ich nicht. Die Frame Klasse hat im Objektkatalog keine Property Text, Visual Studio sagt aber das im frame Objekt eine Text Property drin ist und da steht auch der richtige Wert drin. Sehr komisch.

    C#-Quellcode

    1. var file = TagLib.Mpeg.File.Create(@"C:\Users\seh\desktop\Rihanna - Love On The Brain.mp3");
    2. var tag = new TagLib.Id3v2.Tag(file, 0);
    3. foreach(var frame in tag.GetFrames())
    4. {
    5. var tagName = Encoding.Default.GetString(frame.FrameId.Data);
    6. if(tagName == "TCOP")
    7. {
    8. }
    9. }


    Man muss jetzt irgendwie an den Wert kommen aber keine Ahnung wie, die Klasse hat so weit ich das sehen kann keine Property Text obwohl sie eigentlich schon da ist.
    Intellisense sagt auch nein zur Text Property. Im Debug Fenster ist sie aber da.
    sag mal....
    kannst du damit was anfangen und mir vielleicht helfen den code für vb.net zu übersetzen ?
    damit müßte man an die framelist kommen...oder verstehe ich da was falsch ?

    C-Quellcode

    1. void stripTags(const char* path) {
    2. MPEG::File m(path);
    3. m.strip(MPEG::File::ID3v1 | MPEG::File::APE, true); //I added this because otherwise, all tags would stay the first time I executed stripTags(). The second time I would execute it then the tags would be mostly gone (except for "year" as mentioned)
    4. ByteVector handle = "APIC";
    5. ID3v2::Tag *t = m.ID3v2Tag();
    6. if (t) {
    7. for (ID3v2::FrameList::ConstIterator it = t->frameList().begin(); it != t->frameList().end(); it++) {
    8. if ((*it)->frameID() != handle) {
    9. t->removeFrames((*it)->frameID());
    10. it = t->frameList().begin(); //since the doc says that removeFrames invalidates the pointer returned by frameList, I update this pointer after each removal
    11. }
    12. }
    13. m.save();
    14. }
    15. m.strip(MPEG::File::ID3v1 | MPEG::File::APE, true);
    16. }
    ich möchte gerne alle frames löschen....deshalb hätte ich das gerne...
    also ich habe mir funktionen gebastelt und es wird alles soweit gelöscht...
    sehe ich das richtig, dass das alle frames sind...

    TPE1 - TIT2 - TALB - TRCK - TCON - TOPE - TCOM - TCOP - TENC - COMM - PRIV - UnknownFrame
    dazu noch die ID3v1 & ID3v2 Tags

    dann gibts ja noch die bilderframes & lyricframes....

    ich wollte eigentlich ne funktion, die mir alle frames löscht...
    oder verstehe ich das etwas nicht so ganz ?