0
嗨 我正在做一个程序来读取mp3头。我阅读site的源代码。 如果知道这个网站或MP3标题阅读。请帮帮我。在Android的MP3标题阅读问题
代码:
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.
}
}
运行代码我得到java.lang.NoClassDefFoundError:
我的控制台输出:
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
谢谢,如何将JUnit包含在我的路径中。 – 2011-05-17 14:30:44
我在我的路径中包含JID3-0.46.jar。我不明白JUnit。请协助我。 – 2011-05-17 14:32:57
@murali_ma:除非您真的*想要*使用JUnit,否则您应该取出使用它的代码,而不是将其添加到您的类路径中。否则,您应该下载JUnit包(请参阅我的答案中的链接),并将其包含在您的类路径中,这取决于您如何运行它。例如,从命令行中可以使用--classpath。 – 2011-05-17 14:56:56