JavaZOOM 1999-2008
Project Homepage :
http://www.javazoom.net/javalayer/javalayer.html
JAVA and MP3 online Forums :
http://www.javazoom.net/services/forums/index.jsp
JLayer is a library that decodes/plays/converts MPEG 1/2/2.5 Layer 1/2/3 (i.e. MP3) in real time for the JAVA(tm) platform. This is a non-commercial project and anyone can add his contribution. JLayer is licensed under LGPL (see LICENSE.txt).
Before running JLayer you must set PATH and CLASSPATH for JAVA
and you must add jl1.0.1.jar to the CLASSPATH.
No, JMF is not required. You just need a JVM JavaSound 1.0 compliant. (i.e. JVM1.3 or higher).
java javazoom.jl.converter.jlc -v -p output.wav yourfile.mp3
(Note : MP3TOWAV converter should work under jdk1.1.x or higher)
java javazoom.jl.player.jlp localfile.mp3
or
java javazoom.jl.player.jlp -url http://www.aserver.com/remotefile.mp3
Note : MP3 simple player only works under JVM that supports JavaSound 1.0 (i.e JDK1.3.x+)
java javazoom.jl.player.advanced.jlap localfile.mp3
Yes, use the following command to play music from stream :
java javazoom.jl.player.jlp -url http://www.shoutcastserver.com:8000
(If JLayer returns without playing SHOUTcast stream then it might mean
that the server expect a winamp like "User-Agent" in HTTP request).
Yes, it works fine for all files generated with LAME.
Yes, It supports VBRI and XING VBR header too.
The API provides a getRawID3v2() method to get an InputStream on ID3v2 frames.
See javazoom.jl.player.advanced.jlap source to learn how to skip frames.
Here are our benchmark notes :
- Heap use range : 1380KB to 1900KB - 370 classes loaded.
- Footprint :
| ~8MB | under WinNT4/Win2K + J2SE 1.3 (Hotspot) |
|---|---|
| ~10MB | under WinNT4/Win2K + J2SE 1.4.1 (Hotspot) |
- CPU usage :
| ~12% | under PIII 800Mhz/WinNT4+J2SE 1.3 (Hotspot) |
|---|---|
| ~8% | under PIII 1Ghz/Win2K+J2SE 1.3.1 (Hotspot) |
| ~12% | under PIII 1Ghz/Win2K+J2SE 1.4.1 (Hotspot) |
| ~1% | under PIII 1Ghz/Win2K+J2SE 1.5.0 (Hotspot) |
Try to post a thread on Java&MP3 online forums at : http://www.javazoom.net/services/forums/index.jsp You can also contact us at jlayer@javazoom.net for contributions.
99% of MP3 plays well with JLayer but some (1%) return an ArrayIndexOutOfBoundsException
while playing. It might come from invalid audio frames.
Just try/catch ArrayIndexOutOfBoundsException in your code to skip
non-detected invalid frames.