Bonsoir,
je devellope une petite application java qui permettra d'éditer automatiquement certaines méta données de fichiers audio, en utilisant leur noms.
J'utilise une librairie qui s'apelle jaudiotagger

Mon problème est le suivant : lorsque je lance mon appli sous netBeans j'obtient ceci (seules les dernières lignes sont importantes je pense , mais je met tout):
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.AbstractID3v2Frame <init>
INFO: Creating empty frame of typeTCON
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.AbstractID3v2Frame <init>
INFO: Created empty frame of typeTCON
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.AbstractID3v2Frame <init>
INFO: Creating empty frame of typeTIT2
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.AbstractID3v2Frame <init>
INFO: Created empty frame of typeTIT2
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.AbstractID3v2Frame <init>
INFO: Creating empty frame of typeTALB
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.AbstractID3v2Frame <init>
INFO: Created empty frame of typeTALB
sept. 26, 2012 11:20:15 PM org.jaudiotagger.audio.mp3.MP3File save
INFO: Saving : E:\Cours\Bidouille Java\Tests\Marcus Reid - Poor Man Cry.mp3
sept. 26, 2012 11:20:15 PM org.jaudiotagger.audio.mp3.MP3File save
INFO: Writing ID3v2 tag:Marcus Reid - Poor Man Cry.mp3
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.ID3v24Tag write
INFO: Writing tag to file:Marcus Reid - Poor Man Cry.mp3
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.ID3v24Frame write
INFO: Writing frame to file:TIT2
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Writing frame body forTIT2:Est Size:0
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Written frame body forTIT2:Real Size:14
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.ID3v24Frame write
INFO: Writing frame to file:TPE1
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Writing frame body forTPE1:Est Size:0
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Written frame body forTPE1:Real Size:12
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.ID3v24Frame write
INFO: Writing frame to file:TALB
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Writing frame body forTALB:Est Size:0
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Written frame body forTALB:Real Size:5
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.ID3v24Frame write
INFO: Writing frame to file:TCON
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Writing frame body forTCON:Est Size:0
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Written frame body forTCON:Real Size:6
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.ID3v24Frame write
INFO: Writing frame to file:TXXX
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Writing frame body forTXXX:Est Size:17
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.datatype.TextEncodedStringNullTerminated writeByteArray
INFO: Writing NullTerminatedString.major_brand
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Written frame body forTXXX:Real Size:17
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.ID3v24Frame write
INFO: Writing frame to file:TXXX
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Writing frame body forTXXX:Est Size:16
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.datatype.TextEncodedStringNullTerminated writeByteArray
INFO: Writing NullTerminatedString.minor_version
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Written frame body forTXXX:Real Size:16
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.ID3v24Frame write
INFO: Writing frame to file:TXXX
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Writing frame body forTXXX:Est Size:27
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.datatype.TextEncodedStringNullTerminated writeByteArray
INFO: Writing NullTerminatedString.compatible_brands
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Written frame body forTXXX:Real Size:27
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.ID3v24Frame write
INFO: Writing frame to file:TDEN
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Writing frame body forTDEN:Est Size:20
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Written frame body forTDEN:Real Size:20
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.ID3v24Frame write
INFO: Writing frame to file:TSSE
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Writing frame body forTSSE:Est Size:12
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.framebody.AbstractID3v2FrameBody write
INFO: Written frame body forTSSE:Real Size:12
sept. 26, 2012 11:20:15 PM org.jaudiotagger.audio.mp3.MP3File save
INFO: Processing ID3v1
sept. 26, 2012 11:20:15 PM org.jaudiotagger.audio.mp3.MP3File save
INFO: Deleting ID3v1
sept. 26, 2012 11:20:15 PM org.jaudiotagger.tag.id3.AbstractID3v1Tag delete
Artiste miapres comitt: Marcus Reid
Tag Type class org.jaudiotagger.tag.id3.ID3v24Tag
INFO: Deleting ID3v1 from file if exists
voici mon code :
(ceci est la méthode chargée de modifier le tag)
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
public static void modifFichier(File testFile){
 
      ReadFile rf = new ReadFile();
 
      try{
 
      AudioFile f = AudioFileIO.read(testFile);
       System.out.println("entre dans modiffichier");
      Tag tag = f.getTag();
        rf.calculArtiste(testFile.getName());
                System.out.println("artiste G "+rf.getArtiste());
        rf.calculTitre(testFile.getName());
      rf.setAlbum("truc");
 
      rf.setGenre("genre");
      tag.setField(FieldKey.ARTIST,rf.artiste);
 
 
        System.out.println("Artiste mit: "+tag.getValue(FieldKey.ARTIST, 0));
      tag.setField(FieldKey.GENRE,rf.genre);
      tag.setField(FieldKey.TITLE,rf.titre);
      tag.setField(FieldKey.ALBUM,rf.album);
      f.commit(); 
 
         System.out.println("Artiste miapres comitt: "+tag.getValue(FieldKey.ARTIST, 0));
 System.out.println("Tag Type  "+tag.getClass().toString());
      }
      catch(Exception e){}
 
 
      }

La chose étonante est que mon
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 System.out.println("Artiste miapres comitt: "+tag.getValue(FieldKey.ARTIST, 0));
est placé après f.commit(); qui est la dernière instruction de ma fonction affiche un artiste.
Néanmoins, je ne vois pas de modification sur le fichier sur le disque(donc pas d'artiste).

Quand on regarde sur la console, on voit qu'une instruction efface les tags IDV3 d'autre versions que IDV3v24, qui est la version du tag de mon fichier.

En clair, j'ai un tag dans mon programme, mais pas sur mon disque , quelqu'un sait-il pourquoi?

p.s: voici la méthode chargée de copier mon fichier :
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
public static void copierFichier(String source, String destination) throws IOException {
    FileInputStream fis = null;
    FileOutputStream fos = null;
 
    try {
      byte buffer[] = new byte[1024];
      int taille = 0;
 
      fis = new FileInputStream(source);
      File f = new File(source);
 
      modifFichier(f);
 
      fos = new FileOutputStream(destination);
      while ((taille = fis.read(buffer)) != -1) {
 
        fos.write(buffer, 0, taille);
      }
    } 
    finally {
            if (fis != null) {
              try {
                fis.close();
              } catch (IOException e) {
              }
            }
            if (fos != null) {
              try {
                fos.close();
              } catch (IOException e) {
              }
            }
    }
  }