http://blog.libertadtech.com/2011/02/porting-lame-encoder-to-android-arm.html
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.
1. download Android NDK(also you need Android SDK and Eclipse with ADT plugin) and create simple project.
2. create directory called "jni" in your project's directory.
3. download lame sources, extract, copy all sources from directory libmp3lame to jni directory. Also copy lame.h which is located in include directory of lame sources.
Nevertheless compiling libmp3lame library for Android using Android NDK is very easy actually.
1. download Android NDK(also you need Android SDK and Eclipse with ADT plugin) and create simple project.
2. create directory called "jni" in your project's directory.
3. download lame sources, extract, copy all sources from directory libmp3lame to jni directory. Also copy lame.h which is located in include directory of lame sources.
//把libmp3lame这个文件夹下所有文件都添加到新建的jni目录,把lame.h也复制进去,该文件在根目录
4. create jni/Android.mk file. it should look like this:
4. create jni/Android.mk file. it should look like this:
在android.mk添加以下
6. edit file jni/utils.h, and replace definition extern ieee754_float32_t fast_log2(ieee754_float32_t x);
with this extern float fast_log2(float x);
5. clean lame sources, remove what's left from GNU autotools, Makefile.am Makefile.in libmp3lame_vc8.vcproj logoe.ico depcomp, folders i386 vector. 删除这些文件以及文件夹LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := mp3lameLOCAL_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.cinclude $(BUILD_SHARED_LIBRARY)
6. edit file jni/utils.h, and replace definition extern ieee754_float32_t fast_log2(ieee754_float32_t x);
with this extern float fast_log2(float x);
//ndk-build报错,提示util.h501行,
extern ieee754_float32_t fast_log2(ieee754_float32_t x); 注释这句
替换成extern float fast_log2(float x)
本文档整理了如何使用Android NDK将LAME MP3编码器移植到Android ARM架构的详细步骤,涵盖了编译和应用集成的关键点。
2999

被折叠的 条评论
为什么被折叠?



