In libgdx i used libmad via a JNI bridge for decoding mp3 files. Libmad is GPL and if you want to use it in a commercial product you have to pay license fees. So today i removed the libmad dependancy and replaced it with libmpg123. From what i knew it is a float decoder so i was surprised to see that it was as fast as libmad on Android! For a 9 minute 196kbi/s mp3 file libmpg123 takes around 18 seconds on my Motorola Milestone. If you are interested in the native sources you can find them at http://code.google.com/p/libgdx/source/browse/#svn/trunk/gdx/jni/mpg123. I took them from the smuuz project and there’s nothing you need to do in order to compile it, no silly flags etc. Awesome! In libgdx there’s now a new Decoder called Mpg123Decoder which is not finished yet, but i have some tests that directly use the native methods and it works just fine.