JavaZOOM Web Site

Make a Donation
Make a donation

Email newsletter 
Powered by

Any Question ?
Try our Forums !

Microsoft Hosted Exchange

jlGui player Applet is the applet version of jlGui, Music Player for the Java™ platform, free, open source project. To play any MP3 or OGG Vorbis file/stream, you need a browser JavaSound 1.0 compliant : Internet Explorer, Mozilla, Opera ... with Java™ Plugin 1.3 or higher.

 hyper.mp3 sample by 'Scooter'

(Javascript Control Panel sample)

- Skin by Bleach -

Click here to test jlGuiApplet

(It also includes the full
Javascript control panel).

Download & Install :

Editions English
jlGuiApplet 2.3.2a - Full Edition
(MP3 & Ogg Vorbis support, 4 skins, Javascript Control Panel,
unsigned jars, source code)
[zip] - 1148KB
[Mirror AT] [Mirror RU]
jlGuiApplet 2.3.2a - Self-Signed Edition
(MP3 & Ogg Vorbis support, 4 skins, Javascript Control Panel,
self-signed jars => no security restrictions)
[zip] - 1073KB

To install jlGuiApplet (full edition), you have to copy lib/ folder including all jar files, jlgui.ini, playlist.m3u, playerapplet.js and skins/ folder in the directory of your web page. Then you have to copy/paste code see below somewhere in your HTML source code and update parameters (in blue below) in playerapplet.js.
The jlGuiApplet above is the result of the following HTML code (including JavaPlugin code).

<!-- jlGui Applet : Begin copy/paste -->
<script src="playerapplet.js"></script>
<!-- jlGui Applet : End copy/paste -->

playerapplet.js sample :

var _info = navigator.userAgent;
var _ns = false;
var _ns6 = false;
var _ie = (_info.indexOf("MSIE") > 0 && _info.indexOf("Win") > 0 && _info.indexOf("Windows 3.1") < 0);
if (_info.indexOf("Opera") > 0) _ie = false;
var _ns = (navigator.appName.indexOf("Netscape") >= 0 && ((_info.indexOf("Win") > 0 && _info.indexOf("Win16") < 0) || (_info.indexOf("Sun") > 0) || (_info.indexOf("Linux") > 0) || (_info.indexOf("AIX") > 0) || (_info.indexOf("OS/2") > 0) || (_info.indexOf("IRIX") > 0)));
var _ns6 = ((_ns == true) && (_info.indexOf("Mozilla/5") >= 0));
if (_ie == true) {
document.writeln('<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" WIDTH="275" HEIGHT="348" NAME="player" codebase=",4,0,0">');
else if (_ns == true && _ns6 == false) {
// BEGIN: Update parameters below for NETSCAPE 3.x and 4.x support.
document.write('<EMBED ');
document.write('type="application/x-java-applet;version=1.4" ');
document.write('CODE="javazoom.jlgui.player.amp.PlayerApplet.class" ');
document.write('JAVA_CODEBASE="./" ');
document.write('ARCHIVE="lib/jlguiapplet2.3.2.jar,lib/jlgui2.3.2-light.jar,lib/tritonus_share.jar,lib/basicplayer2.3.jar,lib/mp3spi1.9.2.jar,lib/jl1.0.jar,lib/vorbisspi1.0.1.jar,lib/jorbis-0.0.13.jar,lib/jogg-0.0.7.jar,lib/commons-logging-api.jar" ');
document.write('NAME="player" ');
document.write('WIDTH="275" ');
document.write('HEIGHT="348" ');
document.write('song="playlist.m3u" ');
document.write('start="no" ');
document.write('skin="skins/bao.wsz" ');
document.write('init="jlgui.ini" ');
document.write('location="url" ');
document.write('useragent="winampMPEG/2.7" ');
document.write('scriptable=true ');
// END
else {
document.writeln('<APPLET CODE="javazoom.jlgui.player.amp.PlayerApplet.class" JAVA_CODEBASE="./" ARCHIVE="lib/jlguiapplet2.3.2.jar,lib/jlgui2.3.2-light.jar,lib/tritonus_share.jar,lib/basicplayer2.3.jar,lib/mp3spi1.9.2.jar,lib/jl1.0.jar,lib/vorbisspi1.0.1.jar,lib/jorbis-0.0.13.jar,lib/jogg-0.0.7.jar,lib/commons-logging-api.jar" WIDTH="275" HEIGHT="348" NAME="player">');
// BEGIN: Update parameters below for INTERNET EXPLORER, FIREFOX, SAFARI, OPERA, MOZILLA, NETSCAPE 6+ support.
document.writeln('<PARAM NAME=CODE VALUE="javazoom.jlgui.player.amp.PlayerApplet.class">');
document.writeln('<PARAM NAME=CODEBASE VALUE="./">');
document.writeln('<PARAM NAME=ARCHIVE VALUE="lib/jlguiapplet2.3.2.jar,lib/jlgui2.3.2-light.jar,lib/tritonus_share.jar,lib/basicplayer2.3.jar,lib/mp3spi1.9.2.jar,lib/jl1.0.jar,lib/vorbisspi1.0.1.jar,lib/jorbis-0.0.13.jar,lib/jogg-0.0.7.jar,lib/commons-logging-api.jar">');
document.writeln('<PARAM NAME=NAME VALUE="player">');
document.writeln('<PARAM NAME="type" VALUE="application/x-java-applet;version=1.4">');
document.writeln('<PARAM NAME="scriptable" VALUE="true">');
document.writeln('<PARAM NAME="song" VALUE="playlist.m3u">');
document.writeln('<PARAM NAME="start" VALUE="no">');
document.writeln('<PARAM NAME="skin" VALUE="skins/bao.wsz">');
document.writeln('<PARAM NAME="init" VALUE="jlgui.ini">');
document.writeln('<PARAM NAME="location" VALUE="url">');
document.writeln('<PARAM NAME="useragent" VALUE="winampMPEG/2.7">');
// END
if (_ie == true) {
else if (_ns == true && _ns6 == false) {
else {


Basic parameters :
skin : Filename of the WinAmp skin 2.0 to load (e.g. skins/askin.wsz).
You can download some nice skins at
song : MP3 filename or M3U playlist to load on starting.
: Plays automatically the MP3 file on applet loading. Values could be "yes" or "no".

Advanced parameters

init : jlGuiApplet configuration filename. Default is "jlgui.ini". You have to modify this file if you want to enable repeat or shuffle.
location : This parameter allows to modify "Eject" button behaviour.
- "none" value means that the button is disabled.
- "url" value means that you could open remote MP3, skins or playlist.
- "all" value means that your could open both local files (MP3, skin, playlist) or remote file. You have to sign the applet for this value.
Default value is "none".
useragent : User-Agent signature of the client. Some streaming servers use it to return either HTML or stream.
forceogg : Force "Ogg Vorbis" audio decoding (for Ogg Vorbis steams only).


  • Does jlGui Applet work with JavaPlugin 1.4 ?
    Yes. JavaPlugin 1.4 is better than 1.3 because it starts playing the song without completing the download.
    It has also been tested successfully under JavaPlugin 1.5 and 1.6.

  • Can I control jlGuiApplet through JavaScript ?
    Yes, jlGuiApplet is scriptable. You can call a few applet methods such as pressStart(), pressPause(), loadPlaylist, loadSkin() ... - see sample in jlGuiApplet download package - but the applet cannot call JavaScript methods.

  • I get security exceptions when trying the Applet locally ?
    jlGuiApplet full edition cannot be tested without a web server (except if you use AppletViewer). Only jlGuiApplet self-signed edition allows tests locally.

  • Can I remove playlist and/or equalizer ?
    Yes, modify jlgui.ini to enable/disable playlist UI or equalizer UI. You also have to modify applet size (see width and height parameters in your HTML source code). You can even hide the Applet with a 1x1 size.

  • Add/Remove Url/Dir/File are not working in the playlist UI ?
    Yes, these features have been disabled due to Applet design problems. However, right click + File Info is working.

  • How to run jlGui Applet with my own playlist ?
    Fill in song parameter with the URL of your M3U playlist.
    (e.g. : song="myplaylist.m3u" myplaylist.m3u includes URLs of MP3 files).

  • I get : Can't load playlist : access denied ( read)
    Your M3U should look like :
    #EXTINF:112, Introduction
    #EXTINF:-1, My Song - My Artist
    #EXTINF:345, Another Song - My Artist

    #EXTINF lines are not mandatory, it's just for comments and song name that will be displayed in the player. It's better to have "My Song" displayed than "".
    Use the full URL for your MP3. Pay attention to special characters such as space, !, ... If you have some then you have to encode (javascript escape) the URL. For instance space should be converted to %20 : song.mp3 should become

  • How to make jlGui Applet play automatically a MP3 ?
    Setup start parameter to "yes". It will automatically play the song (even in the playlist).

  • Can I play a shoutcast/icecast streams with jlGuiApplet ?
    Yes, but the stream must come from the server hosting the applet. If the stream comes from another remote server then you have to sign the applet (see next question).

  • Can I play a MP3 or a stream coming from another remote web site ?
    No, it's a security restriction of applets. An applet can only connect to its hosting server. However, answer is YES if you digitally sign the applet (see SUN tutorial - step 3 to 4) OR if you use our self-signed edition.

  • How to setup jlGuiApplet to play local/remote stream?
    1 - Create a M3U file (stream.m3u) including the URL of the stream. e.g. :

    #EXTINF,-1, Your Stream Name

    2 - Fill in both song parameters with the M3U :
    <PARAM NAME = "song" VALUE ="stream.m3u">
    song = "stream.m3u"
    We've successfully tested shoutcast 1.9.x remote MP3 streams with jlGuiApplet. Do not remove the useragent parameter to make it work.

  • Does jlGuiApplet support ID3 tag for MP3 files ?
    Yes, jlGuiApplet only supports ID3v2 tags.

  • Does jlGuiApplet support shoutcast title streaming ?
    Yes, it does.

  • Can I play a MP3 (or OGG Vorbis) stored on my local computer ?
    No, once again it's a security restriction of applets. An applet cannot read/write local files. However, you can do it by signing the applet (or use the self-signed edition) and setup location parameter to "all" to enable the "browse local files" feature.

  • I get : access denied ( file:\ ... ) ?
    As jlGui Applet is not signed you can't test it without a web server. The error you get means that the Applet tries to open a local file. Upload jlGui Applet files (.JAR + .ini + skin) and your HTML to test it.
    If you want to test it without a web server, and without signing the applet, then you should use AppletViewer included in JDK.

  • Why don't you provide a signed version of jlGuiApplet ?
    We provide a self-signed edition. However to sign an applet (or any code) you need a "Code Signing X509 Certificate" that costs around $400 for 2 years. You do need a real (not self-signed) certificate to avoid browser security warnings before launching an applet.

    Note that you could self-sign the jlGuiApplet for free (tools are included in the JDK) for testing purpose but you will get a warning from the browser.

  • Where can I learn more about the whole jlGui project ?
    jlGuiApplet is a small part of jlGui - Music Player for the Java Platform - open source project. jlGui could run as stand alone application and through JavaWebStart too.
    Learn more at :

  • Do I need JMF to run jlGui Applet ?
    No, you just need JavaPlugin 1.3 or higher. jlGui is NOT based on JMF. It uses its own MP3 engine (JLayer).

  • Do you have commercial license for jlGuiApplet ?
    No, jlGuiApplet is free and it's under LGPL. We don't plan to provide commercial license. However donations are welcome and needed to help us continue providing free support. You can use/extend it as you want but please be compliant to the LGPL license.

  • What are the differences between jlGui WebStart and jlGui Applet?
    jlGui Applet jlGui WebStart
    Browser needed. Browser NOT needed.
    Java Plugin 1.3 or higher needed. JRE 1.3 or higher and Java WebStart needed. (Note that both JavaWebStart and JavaPlugin are installed when you deploy JRE 1.4 or higher).
    You can control jlGui though JavaScript. No javascript controls because WebStart doesn't need browser.
    Playlist UI features (Add dir, file, url, Remove files, ...) missing. All playlist UI features available.
    Two editions (Full and self-signed) available. One auto-deployable full edition.
    jlGui Powered !  Tune In
    Weak cache management. Fine cache management.
    JAR files are not signed. You can play any files/streams from the server hosting the applet. You cannot connect to remote streaming server or load local files without signing all JAR files. All JAR files are self-signed to allow remote streaming connection and local files loading.
    Java Plugin has security limitations that make jlGui Applet source code hard to maintain. Java Web Start is future of Applets !
  • Are jlGuiApplet archives available ?
    Yes, but there is no support for old releases of jlGuiApplet.
    You could download jlGuiApplet 2.3 and jlGuiApplet2.3 self-signed.








Java and all Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U. S. and other countries.
All other company and/or product names are the property of their respective owners.