IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez .NET Discussion :

lecture et �criture des tags id3 d'un fichier mp3 [Sources]


Sujet :

Contribuez .NET

  1. #1
    Inactif  

    Homme Profil pro
    d�veloppeur Vala
    Inscrit en
    F�vrier 2011
    Messages
    478
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activit� : d�veloppeur Vala
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : F�vrier 2011
    Messages : 478
    Par d�faut lecture et �criture des tags id3 d'un fichier mp3
    Bonjour
    voil�, j'ai d�cid� de poster ce premier code, en esp�rant que ce ne soit pas le dernier .
    �a permettra � ceux qui ont d�velopper un lecteur mp3 d'ajouter ce code afin de pouvoir par exemple afficher les informations sur me mp3 en cours de lecture.
    les remarques et critiques seront les bienvenues .
    si quelqu'un a une id�e d'am�lioration, elle sera impl�ment�e et son pseudo cit� dans le commentaire du code
    Fichiers attach�s Fichiers attach�s

  2. #2
    Membre �prouv� Avatar de LeCygne
    Homme Profil pro
    D�veloppeur .NET
    Inscrit en
    Juin 2010
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activit� : D�veloppeur .NET

    Informations forums :
    Inscription : Juin 2010
    Messages : 91
    Par d�faut Quelques suggestions d'architecture
    Bonjour,

    Cela fait quelques ann�es que je projette d'ajouter proprement un Tag Id3 � mes fichiers mp3 d'apr�s l'arborescence o� il se trouve. (Car je leur enl�ve toujours leur tag et les range soigneusement). J'ai donc regard� plut�t attentivement votre code hier soir.

    La version 1 des Tag Id3 est bien lue. Je n'ai pas test� la deuxi�me: je vous fais confiance sur cette partie que vous semblez parfaitement maitriser.

    Je vous propose de vous sugg�rer quelques petites choses sur l'architecture :

    1) Vous construisez une classe Id3, dans laquelle vous placez une propri�t� pour le chemin du fichier (je ne me souviens plus du nom exacte des variables, veuillez m'en excuser). Cette construction sugg�re que le fichier est contenu dans le tag. Je pense qu'il vaudrait mieux faire l'inverse : Un fichier qui contient un tag Id3. Par exemple :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
     
    class Mp3File
        {
        string filePath; // Chemin du fichier.
        bool isMp3File; // Vrai si le fichier est un mp3.
        Id3 id3; // tag Id3 du fichier "null" le fichier n'a pas de Tag Id3
        }
    Ainsi, vous pourrez retirer le chemin de fichier de la classe Id3 (Et peut �tre aussi le booleen indiquant si le Tag Id3 est pr�sent ou non) et ne conserver que les variables dont le nom commence par "_id3". Je pense d'ailleurs que ce n'est pas un hasard si leur nom commence justement par "_id3" et que vous avez bien sentit quelque chose l�. Ce d�but "_id3" est cependant affreusement redondant avec le nom de la classe. Il deviendra compl�tement inutile. N�h�sitez pas � l'enlever.

    2) Vous construisez deux classes qui h�rite de cette fameuse classe Id3: la version 1 "Id3v1" et la version 2 "Id3v2". Informatiquement, c'est tr�s bien. Mais fonctionnellement, comment fait on pour manipuler � la fois la version 1 et la version 2 du tag dans un m�me fichier ? Si je reprends le bout de code ci-dessus, j'ai tout de suite envie de le transformer comme suit :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class Mp3File
        {
        string filePath; // Chemin du fichier.
        bool isMp3File; // Vrai si le fichier est un mp3.
        Id3v1 id3v1; // tag Id3v1 du fichier "null" le fichier n'a pas de Tag Id3v1
        Id3v2 id3v2; // tag Id3v2 du fichier "null" le fichier n'a pas de Tag Id3v2
        }
    3) Lorsque j'ai utilis� la classe Id3v1, ma premi�re intention a �t� d'instancier une classe sans lui pr�ciser de fichier. Et l� pas possible. Il est vrai que le vide est difficile � g�rer en informatique. Pourquoi ne pas laisser la propri�t� "Set" du chemin de fichier en �criture et lancer l'initialisation des variables dans celle-ci:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    class Mp3File
        {
        string filePath; // Chemin du fichier.
        bool isMp3File; // Vrai si le fichier est un mp3.
        Id3v1 id3v1; // tag Id3v1 du fichier "null" le fichier n'a pas de Tag Id3v1
        Id3v2 id3v2; // tag Id3v2 du fichier "null" le fichier n'a pas de Tag Id3v2
     
        Mp3File ( ) : this("");
            {
            }
     
        Mp3File (string filePath)
            {
            this.FilePath = filePath;
            }
     
        public string FilePath
            {
            get ...
            set { this.SetFilePath(value); }
            }
     
        protected void SetFilePath ( string filePath )
            {
            if (filePath non valide)
                {
                this.SetNotMp3File();
                }
            else
                {
                this.filePath = filePath;
                this.FaireLeGrosDuTravail...
                }
            }
     
         protected void SetNotMp3File()
            {
            this.isMp3File= false;
            this.id3v1 = null;
            this.id3v2 = null;
            }
     
        // Un peu de bonus pendant que je suis chaud ;-)
        public bool Id3v1TagExists
            {
            get { return (this.id3v1 != null); }
            set { if (value != this.Id3v1TagExists) {this.FaireEncoreDuTravail...} }
            }
     
        public bool Id3v2TagExists
            {
            get { return (this.id3v2 != null); }
            set { if (value != this.Id3v2TagExists) {this.FaireEncoreDuTravail...} }
            }
     
       }
    Voila pour ces quelques suggestions, en esp�rant avoir �t� le plus constructif possible. En tout cas je mets de cot� votre code qui devrait m'�tre utile.

  3. #3
    Inactif  

    Homme Profil pro
    d�veloppeur Vala
    Inscrit en
    F�vrier 2011
    Messages
    478
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Cher (Centre)

    Informations professionnelles :
    Activit� : d�veloppeur Vala
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : F�vrier 2011
    Messages : 478
    Par d�faut
    Je d�terre ce topic juste pour informer que la librairie taglib-sharp est bien plus aboutie que la mienne http://download.banshee.fm/taglib-sharp disponible aussi bien pour linux que windows

Discussions similaires

  1. Lecture et �criture des donn�es dans une carte � puce
    Par junior222 dans le forum API standards et tierces
    R�ponses: 7
    Dernier message: 30/11/2015, 15h57
  2. lecture et �criture des tags d'un fichier audio
    Par Rachel dans le forum Biblioth�ques et frameworks
    R�ponses: 0
    Dernier message: 08/01/2012, 06h30
  3. [Rxtx] Lecture et �criture des donn�es envoy�es par Rs232
    Par Marou77 dans le forum API standards et tierces
    R�ponses: 2
    Dernier message: 21/04/2011, 10h50
  4. R�cup�ration des tags id3 de fichiers ogg
    Par N_BaH dans le forum Langage
    R�ponses: 3
    Dernier message: 05/05/2009, 03h06
  5. Lire des tags ID3 sur un fichier distant
    Par thms92 dans le forum Programmation multim�dia/Jeux
    R�ponses: 4
    Dernier message: 15/03/2009, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo