Skip to content

mahozad/jlayer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f795949 · Nov 21, 2022

History

30 Commits
Oct 8, 2017
Oct 8, 2017
Oct 8, 2017
Oct 8, 2017
Oct 8, 2017
Dec 1, 2017
Nov 21, 2022
Oct 8, 2017
Oct 8, 2017
Oct 8, 2017
Oct 8, 2017
Oct 8, 2017
Oct 8, 2017

Repository files navigation

GitHub release GitHub top language GitHub last commit license

JavaZOOM 1999-2008

DESCRIPTION

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 Javatm platform. This is a non-commercial project and anyone can add his contribution. JLayer is licensed under LGPL (see LICENSE).

FAQ

  • How to install JLayer?
    Before running JLayer you must set PATH and CLASSPATH for Java and you must add jl1.0.1.jar to the CLASSPATH.

  • Do I need JMF to run JLayer player?
    No, JMF is not required. You just need a JVM JavaSound 1.0 compliant. (i.e. JVM1.3 or higher).

  • How to run the MP3TOWAV converter?
    java javazoom.jl.converter.jlc -v -p output.wav yourfile.mp3

    Note: MP3TOWAV converter should work under jdk1.1.x or higher

  • How to run the simple MP3 player?
    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+)

  • How to run the advanced (threaded) MP3 player?
    java javazoom.jl.player.advanced.jlap localfile.mp3

  • Does simple MP3 player support streaming?
    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).

  • Does JLayer support MPEG 2.5?
    Yes, it works fine for all files generated with LAME.

  • Does JLayer support VBR?
    Yes, It supports VBRI and XING VBR header too.

  • How to get ID3v1 or ID3v2 tags from JLayer API?
    The API provides a getRawID3v2() method to get an InputStream on ID3v2 frames.

  • How to skip frames to have a seek feature?
    See javazoom.jl.player.advanced.jlap source to learn how to skip frames.

  • How much memory/CPU JLayer needs to run?
    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).
  • How to contact JLayer developers?
    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 [email protected] for contributions.

KNOWN PROBLEMS

99% of MP3 plays well with JLayer but some (1%) return an ArrayIndexOutOfBoundsException while playing. It might come from invalid audio frames.
Workaround: Just try/catch ArrayIndexOutOfBoundsException in your code to skip non-detected invalid frames.