in my app i need to decode an mp3 file into a pcm buffer. that's a lot of data so i downsample it to mono 22050Hz as i read and decode it.
at the moment i'm using javazoom jlayer decoder http://www.javazoom.net/javalayer/javalayer.html
its working but its slow, 30secs to decode a 3min song in run mode, ages in debug mode. on my windows machine using libmpg i can do that in about 1 second.
is there a faster way that anyone knows for sure is faster? i don't want to waste time implementing another method if its not significantly faster. thanks.
by the way, in my app, i need the whole thing downloaded to a pcm buffer in memory so i'm not interested in things that simply play mp3 files.
This is the moment when you go Native in android!
-use NDK and find a fast c/c++ library (they are like 20x faster than jlayer, for example 9min sogn in 18sec)
-here are some libs that can be usefull:
http://www.mpg123.de/
www underbit.com/products/mad/
www oracle.com/technetwork/java/javase/download-137625.html (not sure does this one supports MP3toPCM)
lame.sourceforge.net/about.php (this one has an android opensource project on github that i hope is going to be very usefull to you! https://github.com/intervigilium/liblame)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With