View Full Version : [C#]File mp3
Ciao a tutti volevo chiedervi come posso fare per riuscire a vedere come sono strutturati i bit di un file mp3 per riuscire a capire in che posizione lo devo modificare per cambiare il suo nome e autore....:)
Ciao a tutti volevo chiedervi come posso fare per riuscire a vedere come sono strutturati i bit di un file mp3 per riuscire a capire in che posizione lo devo modificare per cambiare il suo nome e autore....:)
dipende come sono taggati gli mp3: id3 v1, id3 v2, ape...
trovi anche classi già pronte all'uso che ti estraggono il tag dal file.
Meglio non reinventare la ruota:
http://developer.kde.org/~wheeler/taglib.html
se vuoi anche il wrapper per c#:
http://svn.tgpsolutions.com/svn/cowbell/trunk/lib/taglib/File.cs
Se usi Visual Studio 2005, c'è già tutto pronto qui:
http://mail.kde.org/pipermail/taglib-devel/2006-May/000356.html
basta seguire i link ;)
Ah, ricorda che Taglib è in licenza LGPL, quindi se vuoi creare un'applicazione closed che usa taglib, DEVI fornire il sorgente di taglib (non del tuo programma) assieme al tuo eseguibile.
Ok grazie mille....mi hai risolto un problemone :D
Ok grazie mille....mi hai risolto un problemone :D
Dimenticavo: Taglib (nato per KDE) funziona nativamente per Linux e MacOs, quindi hai bisogno di un porting.
In soldoni usa:
MSVC port di Taglib:
http://metz.gehn.net/files/taglib-snapshot-win32.zip
C# binding:
http://svn.tgpsolutions.com/svn/cowbell/trunk/lib/taglib/File.cs
(quello presente nel terzo link presente in http://mail.kde.org/pipermail/taglib-devel/2006-May/000356.html è un po' peggiore (non supporta UTF-8), anche se ha più funzioni wrappate che a te non interessano - a te interessa avere una classe "Tag" a partire da un mp3, e da quella avere tutte le informazioni).
In questo modo sei a posto, hai davvero tutto quello che ti serve (compila il progetto nel primo link per avere la dll per Win, poi inserisci il wrapper .cs nel tuo progetto ed usi la classe "File" del wrapper per aprire/leggere/chiudere il file mp3/ogg vorbis/flac/mpc).
Per usarla, guardati il codice, ma in pratica devi fare:
File mp3 = new File("nomefile.mp3");
Tag mp3tag = mp3.Tag;
// In mp3tag hai tutto. Se modifichi alcuni campi e vuoi salvarli nel file, fai:
// mp3.Save();
// Alla fine:
mp3.Dispose();
// oppure fai fare al garbage collector di C#, visto che il distruttore della classe wrapper File chiama doDispose().
Ah, ricordati sempre della LGPL (DEVI includere i sorgenti di taglib + il sorgente del wrapper .cs quando distribuisci il tuo programma).
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.