作者:谭东
时间: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)
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