2011-05-17 2 views
0

salut Je suis en train de faire un programme pour la lecture en-tête mp3. Je lis le code source du site. si vous êtes au courant de la lecture de ce site ou de l'en-tête mp3. Aidez-moi, s'il vous plaît.problème de lecture d'en-tête mp3 dans Android

Code

est:

File oSourceFile = new File("D:\\Mp3\\a.mp3"); 

    // create an MP3File object representing our chosen file 
    MediaFile oMediaFile = new MP3File(oSourceFile); 

    // any tags read from the file are returned, in an array, in an order which you should not assume 
    ID3Tag[] aoID3Tag = oMediaFile.getTags(); 
    // let's loop through and see what we've got 
    // (NOTE: we could also use getID3V1Tag() or getID3V2Tag() methods, if we specifically want one or the other) 
    for (int i=0; i < aoID3Tag.length; i++) 
    { 
     // check to see if we read a v1.0 tag, or a v2.3.0 tag (just for example..) 
     if (aoID3Tag[i] instanceof ID3V1_0Tag) 
     { 
      ID3V1_0Tag oID3V1_0Tag = (ID3V1_0Tag)aoID3Tag[i]; 
      // does this tag happen to contain a title? 
      if (oID3V1_0Tag.getTitle() != null) 
      { 
       System.out.println("Title = " + oID3V1_0Tag.getTitle()); 
      } 
      // etc. 
     } 
     else if (aoID3Tag[i] instanceof ID3V2_3_0Tag) 
     { 
      ID3V2_3_0Tag oID3V2_3_0Tag = (ID3V2_3_0Tag)aoID3Tag[i]; 
      // check if this v2.3.0 frame contains a title, using the actual frame name 
      if (oID3V2_3_0Tag.getTIT2TextInformationFrame() != null) 
      { 
       System.out.println("Title = " + oID3V2_3_0Tag.getTIT2TextInformationFrame().getTitle()); 
      } 
      // but check using the convenience method if it has a year set (either way works) 
      try 
      { 
       System.out.println("Year = " + oID3V2_3_0Tag.getYear()); // reads TYER frame 
      } 
      catch (ID3Exception e) 
      { 
       // error getting year.. if one wasn't set 
       System.out.println("Could get read year from tag: " + e.toString()); 
      } 
      // etc. 
     } 
    } 

exécuter le code que je reçois java.lang.NoClassDefFoundError:

ma sortie de la console:

Exception in thread "main" java.lang.NoClassDefFoundError: junit/framework/TestCase 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClass(Unknown Source) 
at java.security.SecureClassLoader.defineClass(Unknown Source) 
at java.net.URLClassLoader.defineClass(Unknown Source) 
at java.net.URLClassLoader.access$000(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
at org.blinkenlights.jid3.test.ID3Test.testWriteV1_0Tag(ID3Test.java:60) 
at org.blinkenlights.jid3.test.ID3Test.main(ID3Test.java:46) 
    Caused by: java.lang.ClassNotFoundException: junit.framework.TestCase 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
    --- testWriteV1_0Tag --- 

at java.net.URLClassLoader.findClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
... 14 more 

Répondre

1

Il ressemble à testWriteV1_0Tag dépend de JUnit, qui ISN 't dans votre chemin de classe. Changez votre code pour qu'il soit et non en utilisant JUnit (et non en fonction de tout ce qui utilise JUnit) ou incluez JUnit dans votre chemin.

+0

merci, comment inclure JUnit dans mon chemin. –

+0

J'inclus JID3-0.46.jar dans mon chemin. Je ne comprends pas JUnit. aidez-moi s'il vous plaît. –

+0

@murali_ma: À moins que vous ne vouliez vraiment utiliser JUnit, vous devriez supprimer le code qui l'utilise plutôt que de l'ajouter à votre classpath. Sinon, vous devriez télécharger le paquet JUnit (voir le lien dans ma réponse) et l'inclure dans votre classpath d'une manière qui dépendra de la façon dont vous l'exécutez. Par exemple, à partir de la ligne de commande, vous utiliseriez --classpath. –