Lame MP3 Encoder compile for Android
I want to compile the lame encoder for Android. How can I find the tutorials for Lame and its compiling for Android platform.
Thanks,
There used to be a good blog post on how to compile lame for Android, but for some reason it's been offline for a while and only available on some dodgy Chinese sites.
I'll just copy the content below:
porting compiling lame encoder to Android ARM arch using Android NDK
I was looking for a mp3 encoding application in Android Market, and found very few, the reason I think Android doesn't support mp3 encoding is because mp3 is patented technology. Another reason is I guess people prefer Java programming and Android SDK rather than Android native development kit.
Nevertheless compiling libmp3lame library for Android using Android NDK is very easy actually.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mp3lame
LOCAL_SRC_FILES := bitstream.c fft.c id3tag.c mpglib_interface.c presets.c quantize.c reservoir.c tables.c util.c VbrTag.c encoder.c gain_analysis.c lame.c newmdct.c psymodel.c quantize_pvt.c set_get.c takehiro.c vbrquantize.c version.c
include $(BUILD_SHARED_LIBRARY)
Makefile.am
, Makefile.in
, libmp3lame_vc8.vcproj
, logoe.ico
, depcomp
, folders i386
, vector
. jni/utils.h
, and replace definition extern ieee754_float32_t fast_log2(ieee754_float32_t x);
with this extern float fast_log2(float x);
$pathtoandroidndk/ndk-build
and you're done, you'll have limp3lame.so
compiled. Also, the following question on SO might be of interest for you, as it deals with some issues after compiling lame for Android:
The above solution worked for me except:
vector
directory from the source directory LOCAL_CFLAGS = -DSTDC_HEADERS