Android lame库在Windows下编译


作者:谭东

时间:2016年9月1日

环境:Windows 7

Lame版本:Lame 3.99.5


LAME是目前最好的MP3编码引擎。LAME编码出来的MP3音色纯厚、空间宽广、低音清晰、细节表现良好,它独创的心理音响模型技术保证了CD音频还原的真实性,配合VBR和ABR参数,音质几乎可以媲美CD音频,但文件体积却非常小。对于一个免费引擎,LAME的优势不言而喻。

如果你需要将音频转码为mp3,就需要借助lame库。

因为ffmpeg自身也不支持转码Mp3,也是借助lame库实现的。


首先在官网http://lame.sourceforge.net/ 下载最新版的版本 lame-3.99.5 下载完进行解压,然后把libmp3lame目录下的文件拷贝到jni下面,去除i386文件夹,和非.c .h的文件,拷贝 lame.h (include目录下)到jni目录下。

编辑 jni/utils.h,把extern ieee754_float32_t fast_log2(ieee754_float32_t x);替换为extern float fast_log2(float x)。

ok,基本源码准备工作就做好了。


接下来写Android.mk和Application.mk。

Android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := lame

LOCAL_SRC_FILES := bitstream.c encoder.c fft.c gain_analysis.c id3tag.c lame.c mpglib_interface.c newmdct.c presets.c psymodel.c quantize.c quantize_pvt.c reservoir.c set_get.c tables.c takehiro.c util.c vbrquantize.c VbrTag.c version.c

LOCAL_LDLIBS += -llog

include $(BUILD_SHARED_LIBRARY)


Application.mk


APP_ABI := all
APP_PLATFORM := android-9
APP_CFLAGS += -DSTDC_HEADERS

完成。

接下来在配置好Ndk环境和环境变量的windows电脑上,可以使用cmd命令,或者Android Studio自带的命令窗口Terminal执行:ndk-build即可。








搞定。


Github项目代码:https://github.com/jaychou2012/LameLib



你可能感兴趣的:(Android lame库在Windows下编译)